Spec-Zone.ru › Django 2.1

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

Следующие миксины используются для создания представлений 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/2.1/ref/class-based-views/mixins-editing/

Spec-Zone.ru

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