The following mixins are used to construct Django’s editing views:
django.views.generic.edit.FormMixin
django.views.generic.edit.ModelFormMixin
django.views.generic.edit.ProcessFormView
django.views.generic.edit.DeletionMixin
Note
Examples of how these are combined into editing views can be found at the documentation on Generic editing views.
FormMixin
¶django.views.generic.edit.
FormMixin
¶A mixin class that provides facilities for creating and displaying forms.
Mixins
Methods and Attributes
initial
¶A dictionary containing initial data for the form.
form_class
¶The form class to instantiate.
success_url
¶The URL to redirect to when the form is successfully processed.
get_form_class
()¶Retrieve the form class to instantiate. By default
form_class
.
get_form
(form_class=None)¶Instantiate an instance of form_class
using
get_form_kwargs()
.
If form_class
isn’t provided get_form_class()
will be used.
get_form_kwargs
()¶Build the keyword arguments required to instantiate the form.
The initial
argument is set to get_initial()
. If the
request is a POST
or PUT
, the request data (request.POST
and request.FILES
) will also be provided.
get_success_url
()¶Determine the URL to redirect to when the form is successfully
validated. Returns
success_url
by default.
form_valid
(form)¶Redirects to
get_success_url()
.
form_invalid
(form)¶Renders a response, providing the invalid form as context.
get_context_data
(**kwargs)¶Calls get_form()
and adds the result to the context data with the
name ‘form’.
ModelFormMixin
¶django.views.generic.edit.
ModelFormMixin
¶A form mixin that works on ModelForms
, rather than a standalone form.
Since this is a subclass of
SingleObjectMixin
, instances of this
mixin have access to the
model
and
queryset
attributes,
describing the type of object that the ModelForm
is manipulating.
If you specify both the
fields
and
form_class
attributes, an
ImproperlyConfigured
exception will be
raised.
Mixins
Methods and Attributes
model
¶A model class. Can be explicitly provided, otherwise will be determined
by examining self.object
or
queryset
.
fields
¶A list of names of fields. This is interpreted the same way as the
Meta.fields
attribute of ModelForm
.
This is a required attribute if you are generating the form class
automatically (e.g. using model
). Omitting this attribute will
result in an ImproperlyConfigured
exception.
success_url
¶The URL to redirect to when the form is successfully processed.
success_url
may contain dictionary string formatting, which
will be interpolated against the object’s field attributes. For
example, you could use success_url="/polls/{slug}/"
to
redirect to a URL composed out of the slug
field on a model.
get_form_class
()¶Retrieve the form class to instantiate. If
form_class
is provided,
that class will be used. Otherwise, a ModelForm
will be
instantiated using the model associated with the
queryset
, or
with the model
,
depending on which attribute is provided.
get_form_kwargs
()¶Add the current instance (self.object
) to the standard
get_form_kwargs()
.
get_success_url
()¶Determine the URL to redirect to when the form is successfully
validated. Returns
django.views.generic.edit.ModelFormMixin.success_url
if it is
provided; otherwise, attempts to use the get_absolute_url()
of the
object.
form_valid
(form)¶Saves the form instance, sets the current object for the view, and
redirects to
get_success_url()
.
form_invalid
(form)¶Renders a response, providing the invalid form as context.
ProcessFormView
¶django.views.generic.edit.
ProcessFormView
¶A mixin that provides basic HTTP GET and POST workflow.
Note
This is named ‘ProcessFormView’ and inherits directly from
django.views.generic.base.View
, but breaks if used
independently, so it is more of a mixin.
Extends
Methods and Attributes
get
(request, *args, **kwargs)¶Renders a response using a context created with
get_context_data()
.
post
(request, *args, **kwargs)¶Constructs a form, checks the form for validity, and handles it accordingly.
DeletionMixin
¶django.views.generic.edit.
DeletionMixin
¶Enables handling of the DELETE
HTTP action.
Methods and Attributes
success_url
¶The url to redirect to when the nominated object has been successfully deleted.
success_url
may contain dictionary string formatting, which will be
interpolated against the object’s field attributes. For example, you
could use success_url="/parent/{parent_id}/"
to redirect to a URL
composed out of the parent_id
field on a model.
delete
(request, *args, **kwargs)¶Retrieves the target object and calls its delete()
method, then
redirects to the success URL.
get_success_url
()¶Returns the url to redirect to when the nominated object has been
successfully deleted. Returns
success_url
by
default.
Jan 24, 2024