Spec-Zone.ru › Django 4.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() и добавляет результат в данные контекста с именем ‘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.0/ref/class-based-views/mixins-editing/

Spec-Zone.ru

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