Topic guide
Form handling with class-based views
Given a contact form: forms.py The view can be constructed using a FormView: views.py Notes: FormView inherits TemplateResponseMixin so template_name can be used here. The default implementation for form_valid() simply redirects to the success_url.
Topic guide
Form handling with class-based views
In this example: CreateView and UpdateView use myapp/author_form.html DeleteView uses myapp/author_confirm_delete.html If you wish to have separate templates for CreateView and > UpdateView, you can set either > template_name or > template_name_suffix > on your view class.
Topic guide
Form handling with class-based views
To track the user that created an object using a CreateView, you can use a custom ModelForm to do this.
Topic guide
Form handling with class-based views
Here is an example showing how you might go about implementing a form that works with an API-based workflow as well as ‘normal’ form POSTs: The above example assumes that if the client supports text/html, that they would prefer it.
Topic guide
Form Assets (the Media class)
Every time the CalendarWidget is used on a form, that form will be directed to include the CSS file pretty.css, and the JavaScript files animations.js and actions.js. This static definition is converted at runtime into a widget property named media.
Topic guide
Form Assets (the Media class)
Assets as a static definition
A dictionary describing the CSS files required for various forms of output media. The values in the dictionary should be a tuple/list of file names. See the section on paths for details of how to specify paths to these files.
Topic guide
Form Assets (the Media class)
Assets as a static definitioncss
New in Django 6.1. classStylesheet(href,**attributes)[source] : Represents a stylesheet link. The rel attribute is set to "stylesheet".
Topic guide
Form Assets (the Media class)
Assets as a static definition
A tuple describing the required JavaScript files. See the section on paths for details of how to specify paths to these files.
Topic guide
Form Assets (the Media class)
Assets as a static definitionjs
classScript(src,**attributes)[source] : Represents a script file.
Topic guide
Form Assets (the Media class)
classMedia[source] : Represents a collection of media assets required by a widget or form. When you interrogate the media attribute of a widget or form, the value that is returned is a forms.Media object.
Topic guide
Form Assets (the Media class)
Widgets aren’t the only objects that can have media definitions – forms can also define media.
Reference
The Forms API
Outputting forms as HTMLDefault rendering
Form.render(template_name=None,context=None,renderer=None) The render method is called by __str__ as well as the Form.as_div(), Form.as_table(), Form.as_p(), and Form.as_ul() methods.
Reference
The form rendering API
The rendering of form templates is controlled by a customizable renderer class. A custom renderer can be specified by updating the FORM_RENDERER setting. It defaults to 'django.forms.renderers.DjangoTemplates'.
Reference
The form rendering API
Built-in-template form renderers
It loads templates first from the built-in form templates directory in django/forms/templates and then from the installed apps’ templates directories using the app_directories loader.
Reference
The form rendering API
Built-in-template form renderers
classTemplatesSetting[source] This renderer gives you complete control of how form and widget templates are sourced. It uses get_template() to find templates based on what’s configured in the TEMPLATES setting.
Reference
Settings
Core Settings Topical Index
FORM_RENDERER USE_BLANK_CHOICE_DASH
Reference
PostgreSQL specific form fields and widgets
Fields
classSimpleArrayField(base_field,delimiter=',',max_length=None,min_length=None) : A field which maps to an array. It is represented by an HTML <input>.
Reference
The Forms API
Outputting forms as HTMLDefault rendering
Form.template_name The name of the template rendered if the form is cast into a string, e.g. via print(form) or in a template via {{ form }}. By default, a property returning the value of the renderer’s form_template_name.
Reference
The Forms API
Outputting forms as HTMLDefault rendering
Form.get_context() Return the template context for rendering the form. The available context is: form: The bound form. fields: All bound fields, except the hidden fields. hidden_fields: All hidden bound fields.
Reference
The Forms API
Outputting forms as HTMLDefault rendering
Form.template_name_label The template used to render a field’s <label>, used when calling BoundField.label_tag()/legend_tag(). Can be changed per form by overriding this attribute or more generally by overriding the default template, see also Overriding built-in form templates.