The following mixins are used to construct Django's editing views:
django.views.generic.edit.FormMixindjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.edit.DeletionMixin注解
Examples of how these are combined into editing views can be found at the documentation on Generic editing views.
FormMixinPdjango.views.generic.edit.FormMixinPA mixin class that provides facilities for creating and displaying forms.
Mixins
Methods and Attributes
initialPA dictionary containing initial data for the form.
form_classPThe form class to instantiate.
success_urlPThe URL to redirect to when the form is successfully processed.
get_form_class()PRetrieve the form class to instantiate. By default
form_class.
get_form(form_class=None)PInstantiate an instance of form_class using
get_form_kwargs().
If form_class isn't provided get_form_class() will be used.
get_form_kwargs()PBuild 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()PDetermine the URL to redirect to when the form is successfully
validated. Returns
success_url by default.
form_valid(form)PRedirects to
get_success_url().
form_invalid(form)PRenders a response, providing the invalid form as context.
get_context_data(**kwargs)PCalls get_form() and adds the result to the context data with the
name 'form'.
ModelFormMixinPdjango.views.generic.edit.ModelFormMixinPA 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.
如果同时指定了 fields 和 form_class 属性,将会引发 ImproperlyConfigured 异常。
Mixins
Methods and Attributes
modelPA model class. Can be explicitly provided, otherwise will be determined
by examining self.object or
queryset.
fieldsPA 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_urlPThe 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()PRetrieve 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()PAdd the current instance (self.object) to the standard
get_form_kwargs().
get_success_url()PDetermine 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)PSaves the form instance, sets the current object for the view, and
redirects to
get_success_url().
form_invalid(form)PRenders a response, providing the invalid form as context.
ProcessFormViewPdjango.views.generic.edit.ProcessFormViewPA mixin that provides basic HTTP GET and POST workflow.
注解
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)PRenders a response using a context created with
get_context_data().
post(request, *args, **kwargs)PConstructs a form, checks the form for validity, and handles it accordingly.
DeletionMixinPdjango.views.generic.edit.DeletionMixinPEnables handling of the DELETE http action.
Methods and Attributes
success_urlPThe 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)PRetrieves the target object and calls its delete() method, then
redirects to the success URL.
get_success_url()PReturns the url to redirect to when the nominated object has been
successfully deleted. Returns
success_url by
default.
8月 23, 2019