Topic guide Working with forms
If you’re manually laying out a form in a template, as opposed to relying on Django’s default form layout, you might want to treat <input type="hidden"> fields differently from non-hidden fields.
1305 sections across all versions Narrow to Django 6.0 (current) →
Topic guide Working with forms
If you’re manually laying out a form in a template, as opposed to relying on Django’s default form layout, you might want to treat <input type="hidden"> fields differently from non-hidden fields.
Topic guide File uploads
If you want to upload multiple files using one form field, create a subclass of the field’s widget and set its allow_multiple_selected class attribute to True.
Reference Model field reference Field options
Field.help_text Extra “help” text to be displayed with the form widget. It’s useful for documentation even if your field isn’t used on a form. Note that this value is not HTML-escaped in automatically-generated forms.
Topic guide Working with forms
In HTML, a form is a collection of elements inside <form>...</form> that allow a visitor to do things like enter text, select options, manipulate objects or controls, and so on, and then send that information back to the server.
Topic guide Working with forms Working with form templates
Each field is available as an attribute of the form, using {{ form.name_of_field }} in a template.
Topic guide Working with forms Working with form templates
However, it can also be directly accessed from the field attribute on the form. For example: Complete <label> elements can also be generated using the label_tag(). For example:
Topic guide Working with forms Working with form templatesLooping over the form’s fields
If you’re manually laying out a form in a template, as opposed to relying on Django’s default form layout, you might want to treat <input type="hidden"> fields differently from non-hidden fields.
Reference The Forms API
If you need to access some additional information about a form field in a template and using a subclass of Field isn’t sufficient, consider also customizing BoundField.
Reference Middleware Available middleware
classCsrfViewMiddleware[source] Adds protection against Cross Site Request Forgeries by adding hidden form fields to POST forms and checking requests for the correct value. See the Cross Site Request Forgery protection documentation.
Internals Committing code
Since Django is hosted on GitHub, patches are provided in the form of pull requests. When committing a pull request, make sure each individual commit matches the commit guidelines described below.
Reference Settings
Default: 100 The maximum number of files that may be received via POST in a multipart/form-data encoded request before a SuspiciousOperation (TooManyFiles) is raised. You can set this to None to disable the check.
Topic guide Working with forms
GET and POST are the only HTTP methods to use when dealing with forms.
Topic guide Creating forms from models
It is strongly recommended that you explicitly set all fields that should be edited in the form using the fields attribute.
Topic guide Security in Django
In a cross-site scripting attack, malicious code in the form of a client-side script is injected into another user’s web browser, where it will be executed.
Internals Committing code
Since Django is hosted on GitHub, patches are provided in the form of pull requests. When committing a pull request, make sure each individual commit matches the commit guidelines described below.
Internals Django’s release process
Starting with Django 2.0, version numbers will use a loose form of semantic versioning such that each version following an LTS will bump to the next “dot zero” version. For example: 2.0, 2.1, 2.2 (LTS), 3.0, 3.1, 3.2 (LTS), etc.
Reference GeoDjango Model API Geometry Field Options
GeometryField.max_geom_collections New in Django 5.2.17. This option is forwarded to the form field generated for this model field, bounding the geometry collection nesting depth in submitted WKB/WKT inputs before raising ValueError.
Reference Settings Core Settings
Default: 100 The maximum number of files that may be received via POST in a multipart/form-data encoded request before a SuspiciousOperation (TooManyFiles) is raised. You can set this to None to disable the check.
Topic guide Working with forms HTML forms
GET and POST are the only HTTP methods to use when dealing with forms.
Topic guide Creating forms from models ModelForm
It is strongly recommended that you explicitly set all fields that should be edited in the form using the fields attribute.