Loading docs/ref/class-based-views/generic-editing.txt +114 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,28 @@ Generic editing views ===================== The views described here provide a foundation for editing content. The following views are described on this page and provide a foundation for editing content: * :class:`django.views.generic.edit.FormView` * :class:`django.views.generic.edit.CreateView` * :class:`django.views.generic.edit.UpdateView` * :class:`django.views.generic.edit.DeleteView` .. note:: Some of the examples on this page assume that a model titled 'Author' has been defined. For these cases we assume the following has been defined in `myapp/models.py`:: from django import models from django.core.urlresolvers 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}) .. class:: django.views.generic.edit.FormView Loading @@ -11,6 +32,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.FormView` * :class:`django.views.generic.base.TemplateResponseMixin` * :class:`django.views.generic.edit.BaseFormView` Loading @@ -18,6 +41,35 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` **Example forms.py**:: from django import forms class ContactForm(forms.Form): name = forms.CharField() message = forms.CharField(widget=forms.Textarea) def send_email(self): # send email using the self.cleaned_data dictionary pass **Example views.py**:: from myapp.forms import ContactForm from django.views.generic.edit import FormView class ContactView(FormView): template_name = 'contact.html' form_class = ContactForm success_url = '/thanks/' def form_valid(self, form): # This method is called when valid form data has been POSTed. # It should return an HttpResponse. form.send_email() return super(ContactView, self).form_valid(form) .. class:: django.views.generic.edit.CreateView A view that displays a form for creating an object, redisplaying the form Loading @@ -25,6 +77,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.CreateView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` Loading @@ -35,6 +89,24 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` **Attributes** .. attribute:: template_name_suffix The CreateView page displayed to a GET request uses a ``template_name_suffix`` of ``'_form.html'``. For example, changing this attribute to ``'_create_form.html'`` for a view creating objects for the the example `Author` model would cause the the default `template_name` to be ``'myapp/author_create_form.html'``. **Example views.py**:: from django.views.generic.edit import CreateView from myapp.models import Author class AuthorCreate(CreateView): model = Author .. class:: django.views.generic.edit.UpdateView A view that displays a form for editing an existing object, redisplaying Loading @@ -44,6 +116,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.UpdateView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` Loading @@ -54,6 +128,24 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` **Attributes** .. attribute:: template_name_suffix The UpdateView page displayed to a GET request uses a ``template_name_suffix`` of ``'_form.html'``. For example, changing this attribute to ``'_update_form.html'`` for a view updating objects for the the example `Author` model would cause the the default `template_name` to be ``'myapp/author_update_form.html'``. **Example views.py**:: from django.views.generic.edit import UpdateView from myapp.models import Author class AuthorUpdate(UpdateView): model = Author .. class:: django.views.generic.edit.DeleteView A view that displays a confirmation page and deletes an existing object. Loading @@ -63,6 +155,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.DeleteView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` Loading @@ -72,7 +166,23 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.detail.SingleObjectMixin` * :class:`django.views.generic.base.View` **Notes** **Attributes** .. attribute:: template_name_suffix The DeleteView page displayed to a GET request uses a ``template_name_suffix`` of ``'_confirm_delete.html'``. For example, changing this attribute to ``'_check_delete.html'`` for a view deleting objects for the the example `Author` model would cause the the default `template_name` to be ``'myapp/author_check_delete.html'``. **Example views.py**:: from django.views.generic.edit import DeleteView from django.core.urlresolvers import reverse_lazy from myapp.models import Author * The delete confirmation page displayed to a GET request uses a ``template_name_suffix`` of ``'_confirm_delete'``. class AuthorDelete(DeleteView): model = Author success_url = reverse_lazy('author-list') docs/ref/class-based-views/mixins-editing.txt +12 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,18 @@ Editing mixins ============== The following mixins are used to construct Django's editing views: * :class:`django.views.generic.edit.FormMixin` * :class:`django.views.generic.edit.ModelFormMixin` * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.edit.DeletionMixin` .. note:: Examples of how these are combined into editing views can be found at the documentation on ``Generic editing views``. .. class:: django.views.generic.edit.FormMixin A mixin class that provides facilities for creating and displaying forms. Loading Loading
docs/ref/class-based-views/generic-editing.txt +114 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,28 @@ Generic editing views ===================== The views described here provide a foundation for editing content. The following views are described on this page and provide a foundation for editing content: * :class:`django.views.generic.edit.FormView` * :class:`django.views.generic.edit.CreateView` * :class:`django.views.generic.edit.UpdateView` * :class:`django.views.generic.edit.DeleteView` .. note:: Some of the examples on this page assume that a model titled 'Author' has been defined. For these cases we assume the following has been defined in `myapp/models.py`:: from django import models from django.core.urlresolvers 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}) .. class:: django.views.generic.edit.FormView Loading @@ -11,6 +32,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.FormView` * :class:`django.views.generic.base.TemplateResponseMixin` * :class:`django.views.generic.edit.BaseFormView` Loading @@ -18,6 +41,35 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` **Example forms.py**:: from django import forms class ContactForm(forms.Form): name = forms.CharField() message = forms.CharField(widget=forms.Textarea) def send_email(self): # send email using the self.cleaned_data dictionary pass **Example views.py**:: from myapp.forms import ContactForm from django.views.generic.edit import FormView class ContactView(FormView): template_name = 'contact.html' form_class = ContactForm success_url = '/thanks/' def form_valid(self, form): # This method is called when valid form data has been POSTed. # It should return an HttpResponse. form.send_email() return super(ContactView, self).form_valid(form) .. class:: django.views.generic.edit.CreateView A view that displays a form for creating an object, redisplaying the form Loading @@ -25,6 +77,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.CreateView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` Loading @@ -35,6 +89,24 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` **Attributes** .. attribute:: template_name_suffix The CreateView page displayed to a GET request uses a ``template_name_suffix`` of ``'_form.html'``. For example, changing this attribute to ``'_create_form.html'`` for a view creating objects for the the example `Author` model would cause the the default `template_name` to be ``'myapp/author_create_form.html'``. **Example views.py**:: from django.views.generic.edit import CreateView from myapp.models import Author class AuthorCreate(CreateView): model = Author .. class:: django.views.generic.edit.UpdateView A view that displays a form for editing an existing object, redisplaying Loading @@ -44,6 +116,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.UpdateView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` Loading @@ -54,6 +128,24 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` **Attributes** .. attribute:: template_name_suffix The UpdateView page displayed to a GET request uses a ``template_name_suffix`` of ``'_form.html'``. For example, changing this attribute to ``'_update_form.html'`` for a view updating objects for the the example `Author` model would cause the the default `template_name` to be ``'myapp/author_update_form.html'``. **Example views.py**:: from django.views.generic.edit import UpdateView from myapp.models import Author class AuthorUpdate(UpdateView): model = Author .. class:: django.views.generic.edit.DeleteView A view that displays a confirmation page and deletes an existing object. Loading @@ -63,6 +155,8 @@ The views described here provide a foundation for editing content. **Ancestors (MRO)** This view inherits methods and attributes from the following views: * :class:`django.views.generic.edit.DeleteView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` Loading @@ -72,7 +166,23 @@ The views described here provide a foundation for editing content. * :class:`django.views.generic.detail.SingleObjectMixin` * :class:`django.views.generic.base.View` **Notes** **Attributes** .. attribute:: template_name_suffix The DeleteView page displayed to a GET request uses a ``template_name_suffix`` of ``'_confirm_delete.html'``. For example, changing this attribute to ``'_check_delete.html'`` for a view deleting objects for the the example `Author` model would cause the the default `template_name` to be ``'myapp/author_check_delete.html'``. **Example views.py**:: from django.views.generic.edit import DeleteView from django.core.urlresolvers import reverse_lazy from myapp.models import Author * The delete confirmation page displayed to a GET request uses a ``template_name_suffix`` of ``'_confirm_delete'``. class AuthorDelete(DeleteView): model = Author success_url = reverse_lazy('author-list')
docs/ref/class-based-views/mixins-editing.txt +12 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,18 @@ Editing mixins ============== The following mixins are used to construct Django's editing views: * :class:`django.views.generic.edit.FormMixin` * :class:`django.views.generic.edit.ModelFormMixin` * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.edit.DeletionMixin` .. note:: Examples of how these are combined into editing views can be found at the documentation on ``Generic editing views``. .. class:: django.views.generic.edit.FormMixin A mixin class that provides facilities for creating and displaying forms. Loading