This code will generate a Form based on an already existing Model. In Django this is called ModelForm and is a useful feature if you want to quickly create a form that saves data into a database.
Create a model (database table): models.py
from django.db import models class Regions(models.Model): region = models.CharField(max_length=50) ... def __unicode__(self): return self.region
Create a form from the model (ModelForm): forms.py
from ApplicationName.models import Regions class AddRegionForm(forms.ModelForm): class Meta: model = Regions
Create a view that will use the form and model: views.py
def add_region(request): # if the form is submitted save the new item if request.method == 'POST': form = AddRegionForm(request.POST) if form.is_valid(): # either you define the fields region = Regions(region=form.cleaned_data['region']) region.save() # or you just save the whole form region = form.save() # fetch all the regions from the table, ordered by name asc regions = Regions.objects.order_by('region') context = ({ 'regions': regions }) # render the template return render(request, 'applicationname/regions.html', context)
References:
https://docs.djangoproject.com/en/dev/ref/forms/fields/
https://docs.djangoproject.com/en/dev/ref/request-response/
http://www.djangobook.com/en/2.0/chapter07.html