Spec-Zone.ru › Django 5.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)

Перенаправляет на get_success_url().

form_invalid(form)

Отображает ответ, предоставляя невалидную форму как контекст.

get_context_data(**kwargs)

Вызывает get_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

Обеспечивает обработку 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/5.0/ref/class-based-views/mixins-editing/

Spec-Zone.ru

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