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

Для построения представлений редактирования в Django используются следующие миксины:

Примечание

Примеры того, как они объединяются в представления для редактирования, можно найти в документации по Общие представления редактирования.

FormMixin

class django.views.generic.edit.FormMixin

Класс-миксин, предоставляющий средства для создания и отображения форм.

Миксины

Методы и атрибуты

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, описывающим тип объекта, которым манипулирует queryset.

Если вы укажете оба атрибута fields и form_class, будет вызвано исключение ImproperlyConfigured.

Миксины

Методы и атрибуты

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, но ломается при самостоятельном использовании, так что это скорее миксин.

Расширяется

Методы и атрибуты

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.

Вернуться на верх