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

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

Spec-Zone.ru

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