""" 34. Generating HTML forms from models Django provides shortcuts for creating Form objects from a model class. """ from django.db import models class Category(models.Model): name = models.CharField(maxlength=20) url = models.CharField('The URL', maxlength=40) def __str__(self): return self.name class Article(models.Model): headline = models.CharField(maxlength=50) pub_date = models.DateTimeField() categories = models.ManyToManyField(Category) def __str__(self): return self.headline __test__ = {'API_TESTS': """ >>> from django.newforms import form_for_model >>> CategoryForm = form_for_model(Category) >>> f = CategoryForm() >>> print f >>> print f.as_ul()
  • >>> print f['name'] >>> f = CategoryForm(auto_id=False) >>> print f.as_ul()
  • Name:
  • The URL:
  • >>> f = CategoryForm({'name': 'Entertainment', 'url': 'entertainment'}) >>> f.errors {} >>> f.clean_data {'url': u'entertainment', 'name': u'Entertainment'} """}