Editing mixinsP

The following mixins are used to construct Django's editing views:

注解

Examples of how these are combined into editing views can be found at the documentation on Generic editing views.

FormMixinP

class django.views.generic.edit.FormMixinP

A mixin class that provides facilities for creating and displaying forms.

Mixins

Methods and Attributes

initialP

A dictionary containing initial data for the form.

form_classP

The form class to instantiate.

success_urlP

The URL to redirect to when the form is successfully processed.

prefixP

The prefix for the generated form.

get_initial()P

Retrieve initial data for the form. By default, returns a copy of initial.

get_form_class()P

Retrieve the form class to instantiate. By default form_class.

get_form(form_class=None)P

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()P

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_prefix()P

Determine the prefix for the generated form. Returns prefix by default.

get_success_url()P

Determine the URL to redirect to when the form is successfully validated. Returns success_url by default.

form_valid(form)P

Redirects to get_success_url().

form_invalid(form)P

Renders a response, providing the invalid form as context.

get_context_data(**kwargs)P

Calls get_form() and adds the result to the context data with the name 'form'.

ModelFormMixinP

class django.views.generic.edit.ModelFormMixinP

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.

如果同时指定了 fieldsform_class 属性,将会引发 ImproperlyConfigured 异常。

Mixins

Methods and Attributes

modelP

A model class. Can be explicitly provided, otherwise will be determined by examining self.object or queryset.

fieldsP

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_urlP

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()P

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()P

Add the current instance (self.object) to the standard get_form_kwargs().

get_success_url()P

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)P

Saves the form instance, sets the current object for the view, and redirects to get_success_url().

form_invalid(form)P

Renders a response, providing the invalid form as context.

ProcessFormViewP

class django.views.generic.edit.ProcessFormViewP

A 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)P

Renders a response using a context created with get_context_data().

post(request, *args, **kwargs)P

Constructs a form, checks the form for validity, and handles it accordingly.

put(*args, **kwargs)P

The PUT action is also handled and just passes all parameters through to post().

DeletionMixinP

class django.views.generic.edit.DeletionMixinP

Enables handling of the DELETE http action.

Methods and Attributes

success_urlP

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)P

Retrieves the target object and calls its delete() method, then redirects to the success URL.

get_success_url()P

Returns the url to redirect to when the nominated object has been successfully deleted. Returns success_url by default.