Spec-Zone.ru › Django 1.9

Обработка миксинов

Следующие миксины используются для создания представлений 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().

Аргумент 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.

Ранее, если были указаны как fields, так и form_class, то fields игнорировалось молча.

Смесители

  • 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 модели.

Добавлена поддержка нового синтаксиса форматирования Python на основе фигурных скобок. Поддержка старого синтаксиса замены %(slug)s устарела и будет удалена в Django 1.10.

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()

Отображает ответ, предоставляя невалидную форму в качестве контекста.

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().

Создание формы было перенесено из этого метода в 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 модели.

Добавлена поддержка нового синтаксиса форматирования Python на основе фигурных скобок. Поддержка старого синтаксиса замены %(slug)s устарела и будет удалена в Django 1.10.

get_success_url()

Возвращает URL для перенаправления после успешного удаления объекта. По умолчанию возвращает success_url.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.9/ref/class-based-views/mixins-editing/

Spec-Zone.ru

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