Обработка миксинов
Следующие миксины используются для создания представлений Django для редактирования:
django.views.generic.edit.FormMixindjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.edit.DeletionMixin
Примечание
Примеры того, как эти миксины объединяются в представления для редактирования, можно найти в документации по представлениям для редактирования на основе обобщенных моделей.
FormMixin
-
class django.views.generic.edit.FormMixin -
Класс миксин, предоставляющий средства для создания и отображения форм.
Миксины
Методы и атрибуты
-
initial -
Словарь, содержащий начальные данные для формы.
-
form_class -
Класс формы для создания экземпляра.
-
success_url -
URL для перенаправления при успешной обработке формы.
-
prefix -
Значение
prefixдля сгенерированной формы.
-
get_initial() -
Получение начальных данных для формы. По умолчанию возвращает копию
initial.
-
get_form_class() -
Получение класса формы для создания экземпляра. По умолчанию используется
form_class.
-
get_form(form_class=None) -
Создает экземпляр
form_class, используяget_form_kwargs(). Еслиform_classне предоставлено, будет использоватьсяget_form_class().Аргумент
form_classбольше не требуется.
-
get_form_kwargs() -
Создание словаря ключевых аргументов, необходимых для создания экземпляра формы.
Аргумент
initialустанавливается в значениеget_initial(). Если запрос являетсяPOSTилиPUT, данные запроса (request.POSTиrequest.FILES) также будут предоставлены.
-
get_success_url() -
Определение URL для перенаправления при успешной валидации формы. По умолчанию возвращает
success_url.
-
form_valid(form) -
Перенаправляет на
get_success_url().
-
form_invalid(form) -
Отображает ответ, предоставляя невалидную форму в контексте.
-
get_context_data(**kwargs) -
Вызывает
get_form()и добавляет результат в данные контекста с именем ‘form’.
-
ModelFormMixin
-
class django.views.generic.edit.ModelFormMixin -
Смеситель форм, работающий с
ModelForms, а не с отдельной формой.Поскольку это подкласс
SingleObjectMixin, экземпляры этого смесителя имеют доступ к атрибутамmodelиqueryset, описывающим тип объекта, с которым работаетModelForm.Если вы укажете как атрибут
fields, так иform_class, будет поднято исключениеImproperlyConfigured.Ранее, если были указаны как
fields, так иform_class, тоfieldsигнорировалось молча.Смесители
Методы и атрибуты
-
model -
Класс модели. Может быть явно указан, в противном случае определяется путем проверки
self.objectилиqueryset.
-
fields -
Список имен полей. Интерпретируется так же, как атрибут
Meta.fieldsклассаModelForm.Этот атрибут обязателен, если вы генерируете класс формы автоматически (например, с использованием
model). Пропуск этого атрибута приведет к исключениюImproperlyConfigured.Ранее, пропуск этого атрибута был разрешен и приводил к форме со всеми полями модели.
-
success_url -
URL для перенаправления при успешной обработке формы.
success_urlможет содержать форматирование строк словарей, которое будет интерполировано относительно атрибутов полей объекта. Например, вы можете использоватьsuccess_url="/polls/{slug}/"для перенаправления на URL, составленный из поляslugмодели.Добавлена поддержка нового синтаксиса форматирования Python на основе фигурных скобок. Поддержка старого синтаксиса замены
%(slug)sустарела и будет удалена в Django 1.10.
-
get_form_class() -
Получить класс формы для создания экземпляра. Если указан
form_class, будет использован этот класс. В противном случае будет создан экземплярModelForm, используя модель, связанную сquerysetилиmodel, в зависимости от того, какой атрибут доступен.
-
get_form_kwargs() -
Добавить текущий экземпляр (
self.object) к стандартнымget_form_kwargs().
-
get_success_url() -
Определить URL для перенаправления при успешной валидации формы. Возвращает
django.views.generic.edit.ModelFormMixin.success_url, если он предоставлен; в противном случае пытается использоватьget_absolute_url()объекта.
-
form_valid(form) -
Сохраняет экземпляр формы, устанавливает текущий объект для представления и перенаправляет на
get_success_url().
-
form_invalid() -
Отображает ответ, предоставляя невалидную форму в качестве контекста.
-
ProcessFormView
-
class django.views.generic.edit.ProcessFormView -
Смеситель, предоставляющий базовый рабочий процесс HTTP GET и POST.
Примечание
Он назван ‘ProcessFormView’ и наследуется непосредственно от
django.views.generic.base.View, но ломается при использовании независимо, поэтому больше похож на смеситель.Расширяет
Методы и атрибуты
-
get(request, *args, **kwargs) -
Отображает ответ с использованием контекста, созданного с помощью
get_context_data().Создание формы было перенесено из этого метода в
get_context_data().
-
post(request, *args, **kwargs) -
Создаёт форму, проверяет её на валидность и обрабатывает соответственно.
-
put(*args, **kwargs) -
Действие
PUTтакже обрабатывается и просто передаёт все параметры вpost().
-
DeletionMixin
-
class django.views.generic.edit.DeletionMixin -
Обеспечивает обработку http действия
DELETE.Методы и атрибуты
-
success_url -
URL для перенаправления после успешного удаления объекта.
success_urlможет содержать форматирование строк словарей, которое будет интерполировано относительно атрибутов полей объекта. Например, вы можете использоватьsuccess_url="/parent/{parent_id}/"для перенаправления на URL, составленный из поляparent_idмодели.Добавлена поддержка нового синтаксиса форматирования Python на основе фигурных скобок. Поддержка старого синтаксиса замены
%(slug)sустарела и будет удалена в Django 1.10.
-
get_success_url() -
Возвращает URL для перенаправления после успешного удаления объекта. По умолчанию возвращает
success_url.
-
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.9/ref/class-based-views/mixins-editing/