Общие представления для редактирования
На этой странице описываются следующие представления, которые обеспечивают основу для редактирования контента:
django.views.generic.edit.FormViewdjango.views.generic.edit.CreateViewdjango.views.generic.edit.UpdateViewdjango.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.TemplateResponseMixindjango.views.generic.edit.BaseFormViewdjango.views.generic.edit.FormMixindjango.views.generic.edit.ProcessFormViewdjango.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.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseCreateViewdjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.FormMixindjango.views.generic.detail.SingleObjectMixindjango.views.generic.edit.ProcessFormViewdjango.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.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseUpdateViewdjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.FormMixindjango.views.generic.detail.SingleObjectMixindjango.views.generic.edit.ProcessFormViewdjango.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.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseDeleteViewdjango.views.generic.edit.DeletionMixindjango.views.generic.detail.BaseDetailViewdjango.views.generic.detail.SingleObjectMixindjango.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/