Editing mixins¶
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¶
- 
class 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_classusing- get_form_kwargs(). If- form_classisn’t provided- get_form_class()will be used.
 - 
get_form_kwargs()¶
- Build the keyword arguments required to instantiate the form. - The - initialargument is set to- get_initial(). If the request is a- POSTor- PUT, the request data (- request.POSTand- request.FILES) will also be provided.
 - 
get_success_url()¶
- Determine the URL to redirect to when the form is successfully validated. Returns - success_urlby 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¶
- 
class 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- modeland- querysetattributes, describing the type of object that the- ModelFormis manipulating.- If you specify both the - fieldsand- form_classattributes, an- ImproperlyConfiguredexception will be raised.- Mixins - Methods and Attributes - 
model¶
- A model class. Can be explicitly provided, otherwise will be determined by examining - self.objector- queryset.
 - 
fields¶
- A list of names of fields. This is interpreted the same way as the - Meta.fieldsattribute 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- ImproperlyConfiguredexception.
 - 
success_url¶
- The URL to redirect to when the form is successfully processed. - success_urlmay 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- slugfield on a model.
 - 
get_form_class()¶
- Retrieve the form class to instantiate. If - form_classis provided, that class will be used. Otherwise, a- ModelFormwill 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_urlif 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¶
- 
class 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¶
- 
class django.views.generic.edit.DeletionMixin¶
- Enables handling of the - DELETEhttp action.- Methods and Attributes - 
success_url¶
- The url to redirect to when the nominated object has been successfully deleted. - success_urlmay 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_idfield 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_urlby default.
 
- 
 
          