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

END_OF_DOCUMENT_MARKER ```

ModelFormMixin

class django.views.generic.edit.ModelFormMixin

Смешанный класс для работы с формами, основанными на моделях, вместо самостоятельной формы.

Поскольку это подкласс SingleObjectMixin, экземпляры этого смешанного класса имеют доступ к атрибутам model и queryset, описывающим тип объекта, с которым работает смешанный класс.

Если вы укажете атрибуты 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, будет использован этот класс. В противном случае будет создан экземпляр класса формы, используя модель, связанную с 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.2/ref/class-based-views/mixins-editing/

Spec-Zone.ru

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