Django Tutorial
Django Create A Complete Project
Django Template
Django Database Query
Django Form
Django Authentication and Permission Management
Django unittest
Django Advanced
In Django, the form system provides a way to define and validate user input. When a user submits a form, Django uses the form definition to validate the input data and provide feedback to the user if any errors occur. Here's how the Django form system works:
To define a form in Django, you create a subclass of django.forms.Form
and define the form fields as class attributes. Here's an example:
from django import forms class ContactForm(forms.Form): name = forms.CharField(max_length=100) email = forms.EmailField() message = forms.CharField(widget=forms.Textarea)
In this example, we define a ContactForm
class that has three form fields: name
, email
, and message
. The CharField
and EmailField
form fields validate their input for maximum length and email format, respectively. The Textarea
widget is used to render the message
field as a multi-line text input.
To render a form in HTML, you typically create an instance of the form and pass it to a template for rendering. Here's an example:
from django.shortcuts import render from .forms import ContactForm def contact(request): form = ContactForm() return render(request, 'contact.html', {'form': form})
In this example, we define a view function called contact()
that creates an instance of the ContactForm
and passes it to a template called contact.html
. The render()
function is used to render the template with the form data.
In the contact.html
template, we can render the form fields using the {{ form }}
template variable:
<form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Send</button> </form>
In this example, we use the {{ form.as_p }}
template tag to render the form fields as paragraphs. This will render each form field with its label and widget, wrapped in a <p>
tag.
When the user submits the form, Django will automatically validate the input data for each form field. If any fields fail validation, the form will not be submitted and the user will be shown an error message.
To check if a form is valid, you can call the is_valid()
method on the form instance:
form = ContactForm(request.POST) if form.is_valid(): # process the form data else: # show the form with validation errors
In this example, we create an instance of the ContactForm
with the POST data from the user's submission. We then call the is_valid()
method to check if the form data passes validation. If the form is valid, we can process the form data. If the form is invalid, we can show the form again with validation errors.
Django's form system allows you to customize many aspects of form rendering and validation, including:
By using Django's form system, you can easily and efficiently define and validate user input for your application.