Редактирование миксинов¶
Для построения представлений редактирования в 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-адрес для перенаправления после успешной обработки формы.
-
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.fieldsModelForm.Это обязательный атрибут, если вы генерируете класс формы автоматически (например, используя
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.
-