Редактирование миксинов¶
Для построения представлений редактирования в Django используются следующие миксины:
django.views.generic.edit.FormMixin
django.views.generic.edit.ModelFormMixin
django.views.generic.edit.ProcessFormView
django.views.generic.edit.DeletionMixin
Примечание
Примеры того, как они объединяются в представления для редактирования, можно найти в документации по Общие представления редактирования.
FormMixin
¶
-
class
django.views.generic.edit.
FormMixin
¶ Класс-миксин, предоставляющий средства для создания и отображения форм.
Миксины
Методы и атрибуты
-
initial
¶ Словарь, содержащий исходные данные для формы.
-
form_class
¶ Класс формы для инстанцирования.
-
success_url
¶ URL-адрес для перенаправления после успешной обработки формы.
-
get_form_class
()¶ Получение класса формы для инстанцирования. По умолчанию
form_class
.
-
get_form
(form_class=None)¶ Создайте экземпляр
form_class
, используяget_form_kwargs()
. Еслиform_class
не предоставлен, будет использованget_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
, описывающим тип объекта, которым манипулируетqueryset
.Если вы укажете оба атрибута
fields
иform_class
, будет вызвано исключениеImproperlyConfigured
.Миксины
Методы и атрибуты
-
model
¶ Класс модели. Может быть указан явно, в противном случае будет определяться при рассмотрении
self.object
илиqueryset
.
-
fields
¶ Список имен полей. Интерпретируется так же, как атрибут
Meta.fields
ModelForm
.Это обязательный атрибут, если вы генерируете класс формы автоматически (например, используя
model
). Отсутствие этого атрибута приведет к исключениюImproperlyConfigured
.
-
success_url
¶ URL-адрес для перенаправления после успешной обработки формы.
success_url
может содержать форматирование строки словаря, которое будет интерполировано на атрибуты поля объекта. Например, вы можете использоватьsuccess_url="/polls/{slug}/"
для перенаправления на URL, составленный из поляslug
в модели.
-
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
(form)¶ Выдает ответ, предоставляя недействительную форму в качестве контекста.
-
ProcessFormView
¶
-
class
django.views.generic.edit.
ProcessFormView
¶ Миксин, обеспечивающий базовый рабочий процесс HTTP GET и POST.
Примечание
Он называется „ProcessFormView“ и наследуется непосредственно от
django.views.generic.base.View
, но ломается при самостоятельном использовании, так что это скорее миксин.Расширяется
Методы и атрибуты
-
get
(request, *args, **kwargs)¶ Выдает ответ, используя контекст, созданный с помощью
get_context_data()
.
-
post
(request, *args, **kwargs)¶ Создает форму, проверяет ее на валидность и обрабатывает соответствующим образом.
-
DeletionMixin
¶
-
class
django.views.generic.edit.
DeletionMixin
¶ Включает обработку http-действия
DELETE
.Методы и атрибуты
-
success_url
¶ url для перенаправления после успешного удаления номинированного объекта.
success_url
может содержать форматирование строки словаря, которое будет интерполировано на атрибуты поля объекта. Например, вы можете использоватьsuccess_url="/parent/{parent_id}/"
для перенаправления на URL, составленный из поляparent_id
в модели.
-
delete
(request, *args, **kwargs)¶ Извлекает целевой объект и вызывает его метод
delete()
, затем перенаправляет на URL-адрес успеха.
-
get_success_url
()¶ Возвращает url для перенаправления, когда назначенный объект был успешно удален. По умолчанию возвращает
success_url
.
-