Spec-Zone.ru › Django 2.1

Общие представления для редактирования

На этой странице описываются следующие представления, которые обеспечивают основу для редактирования контента:

  • django.views.generic.edit.FormView
  • django.views.generic.edit.CreateView
  • django.views.generic.edit.UpdateView
  • django.views.generic.edit.DeleteView

Примечание

Некоторые примеры на этой странице предполагают, что модель Author определена следующим образом в myapp/models.py:

from django.db import models
from django.urls import reverse

class Author(models.Model):
    name = models.CharField(max_length=200)

    def get_absolute_url(self):
        return reverse('author-detail', kwargs={'pk': self.pk})

FormView

class django.views.generic.edit.FormView

Представление, отображающее форму. При ошибке форма отображается повторно с ошибками валидации; при успехе происходит переадресация на новую страницу.

Предки (MRO)

Это представление наследует методы и атрибуты от следующих представлений:

  • django.views.generic.base.TemplateResponseMixin
  • django.views.generic.edit.BaseFormView
  • django.views.generic.edit.FormMixin
  • django.views.generic.edit.ProcessFormView
  • django.views.generic.base.View

Пример myapp/forms.py:

%%%CODE_BLOCK_14%%>

Пример myapp/views.py:

%%%CODE_BLOCK_15%%>

Пример myapp/contact.html:

%%%CODE_BLOCK_16%%>

CreateView

class django.views.generic.edit.CreateView

Представление, отображающее форму для создания объекта, повторно отображающее форму с ошибками валидации (если они есть) и сохраняющее объект.

Предки (MRO)

Это представление наследует методы и атрибуты от следующих представлений:

  • django.views.generic.detail.SingleObjectTemplateResponseMixin
  • django.views.generic.base.TemplateResponseMixin
  • django.views.generic.edit.BaseCreateView
  • django.views.generic.edit.ModelFormMixin
  • django.views.generic.edit.FormMixin
  • django.views.generic.detail.SingleObjectMixin
  • django.views.generic.edit.ProcessFormView
  • django.views.generic.base.View

Атрибуты

template_name_suffix

Страница, отображаемая запросу GET, использует суффикс template_name_suffix для '_form'. Например, изменение этого атрибута на '_create_form' для представления, создающего объекты для модели Author, приведет к тому, что значение по умолчанию template_name станет 'myapp/author_create_form.html'.

object

При использовании CreateView, у вас есть доступ к self.object, представляющему создаваемый объект. Если объект еще не создан, значение будет None.

Пример myapp/views.py:

%%%CODE_BLOCK_40%%>

Пример myapp/author_form.html:

%%%CODE_BLOCK_41%%>

UpdateView

class django.views.generic.edit.UpdateView

Представление, отображающее форму для редактирования существующего объекта, повторно отображающее форму с ошибками валидации (если они есть) и сохраняющее изменения в объекте. Оно автоматически генерирует форму из класса модели объекта (если не указан класс формы вручную).

Предки (MRO)

Это представление наследует методы и атрибуты от следующих представлений:

  • django.views.generic.detail.SingleObjectTemplateResponseMixin
  • django.views.generic.base.TemplateResponseMixin
  • django.views.generic.edit.BaseUpdateView
  • django.views.generic.edit.ModelFormMixin
  • django.views.generic.edit.FormMixin
  • django.views.generic.detail.SingleObjectMixin
  • django.views.generic.edit.ProcessFormView
  • django.views.generic.base.View

Атрибуты

template_name_suffix

Страница, отображаемая запросу GET, использует суффикс template_name_suffix для '_form'. Например, изменение этого атрибута на '_update_form' для представления, обновляющего объекты для модели Author, приведет к тому, что значение по умолчанию template_name станет 'myapp/author_update_form.html'.

object

При использовании UpdateView, у вас есть доступ к self.object, представляющему обновляемый объект.

Пример myapp/views.py:

%%%CODE_BLOCK_64%%>

Пример myapp/author_update_form.html:

%%%CODE_BLOCK_65%%>

DeleteView

class django.views.generic.edit.DeleteView

Представление, отображающее страницу подтверждения и удаляющее существующий объект. Объект будет удален только если метод запроса равен POST. Если это представление загружается с помощью GET, оно отобразит страницу подтверждения, которая должна содержать форму, отправляющую POST-запрос на тот же URL.

Предки (MRO)

Это представление наследует методы и атрибуты от следующих представлений:

  • django.views.generic.detail.SingleObjectTemplateResponseMixin
  • django.views.generic.base.TemplateResponseMixin
  • django.views.generic.edit.BaseDeleteView
  • django.views.generic.edit.DeletionMixin
  • django.views.generic.detail.BaseDetailView
  • django.views.generic.detail.SingleObjectMixin
  • django.views.generic.base.View

Атрибуты

template_name_suffix

Страница, отображаемая запросу GET, использует суффикс template_name_suffix для '_confirm_delete'. Например, изменение этого атрибута на '_check_delete' для представления, удаляющего объекты для модели Author, приведет к тому, что значение по умолчанию template_name станет 'myapp/author_check_delete.html'.

Пример myapp/views.py:

%%%CODE_BLOCK_86%%>

Пример myapp/author_confirm_delete.html:

%%%CODE_BLOCK_87%%>

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

Spec-Zone.ru

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