Spec-Zone.ru › Django 6.0

Миксины для редактирования

Следующие миксины используются для создания представлений редактирования 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

Класс-миксин, предоставляющий средства для создания и отображения форм.

Миксины

  • django.views.generic.base.ContextMixin

Методы и атрибуты

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

Определяет prefix для созданной формы. По умолчанию возвращает prefix.

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.

Миксины

  • django.views.generic.edit.FormMixin
  • django.views.generic.detail.SingleObjectMixin

Методы и атрибуты

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, но при самостоятельном использовании работает некорректно, поэтому его правильнее считать миксином.

Расширяет

  • 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API