Миксины для редактирования
Следующие миксины используются для создания представлений редактирования 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().
-
get_form_kwargs() -
Формирует именованные аргументы, необходимые для создания формы.
Аргумент
initialзадается значениемget_initial(). Если запрос имеет типPOSTилиPUT, также будут переданы данные запроса (request.POSTиrequest.FILES).
-
get_success_url() -
Определяет URL для перенаправления после успешной проверки формы. По умолчанию возвращает
success_url.
-
form_valid(form) -
Перенаправляет на URL, возвращаемый методом
get_success_url().
-
form_invalid(form) -
Формирует ответ, передавая в контекст не прошедшую проверку форму.
-
get_context_data(**kwargs) -
Вызывает
get_form()и добавляет результат в данные контекста под именем ‘form’.
-
ModelFormMixin
-
class django.views.generic.edit.ModelFormMixin -
Миксин формы, предоставляющий средства для работы с
ModelForm, а не с отдельной формой.Поскольку этот класс является подклассом
SingleObjectMixin, экземпляры этого миксина имеют доступ к атрибутамmodelиqueryset, описывающим тип объекта, с которым работаетModelForm.Если задать одновременно атрибуты
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) -
Сохраняет экземпляр формы, задает текущий объект для представления и перенаправляет на URL, возвращаемый методом
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) -
Создает форму, проверяет ее и обрабатывает соответствующим образом.
-
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модели.
-
delete(request, *args, **kwargs) -
Получает целевой объект и вызывает его метод
delete(), а затем перенаправляет на URL успешного завершения.
-
get_success_url() -
Возвращает URL для перенаправления после успешного удаления указанного объекта. По умолчанию возвращает
success_url.
-
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/ref/class-based-views/mixins-editing/