Spec-Zone.ru › Django 3.2

Редактирование миксинов

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

Перенаправляет на 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.

Миксины

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

Сохраняет экземпляр формы, устанавливает текущий объект для представления и перенаправляет на 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

Разрешает обработку действия DELETE http.

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

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/3.2/ref/class-based-views/mixins-editing/

Spec-Zone.ru

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