Spec-Zone.ru › Django 4.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() и добавляет результат в данные контекста с именем «форма».

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

Spec-Zone.ru

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