Merge pull request #1271 from batisteo/ticket-20565

Fixed #20565 -- Added template examples for GCBV.
This commit is contained in:
Marc Tamlyn 2013-06-14 07:40:00 -07:00
commit f656757888
3 changed files with 81 additions and 21 deletions

View File

@ -63,7 +63,7 @@ ArchiveIndexView
month or day using the attribute ``date_list_period``. This also applies month or day using the attribute ``date_list_period``. This also applies
to all subclass views. to all subclass views.
**Example views.py**:: **Example myapp/views.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
from django.views.generic.dates import ArchiveIndexView from django.views.generic.dates import ArchiveIndexView
@ -160,7 +160,7 @@ YearArchiveView
* Uses a default ``template_name_suffix`` of ``_archive_year``. * Uses a default ``template_name_suffix`` of ``_archive_year``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.dates import YearArchiveView from django.views.generic.dates import YearArchiveView
@ -172,7 +172,7 @@ YearArchiveView
make_object_list = True make_object_list = True
allow_future = True allow_future = True
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -255,7 +255,7 @@ MonthArchiveView
* Uses a default ``template_name_suffix`` of ``_archive_month``. * Uses a default ``template_name_suffix`` of ``_archive_month``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.dates import MonthArchiveView from django.views.generic.dates import MonthArchiveView
@ -267,7 +267,7 @@ MonthArchiveView
make_object_list = True make_object_list = True
allow_future = True allow_future = True
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -348,7 +348,7 @@ WeekArchiveView
* Uses a default ``template_name_suffix`` of ``_archive_week``. * Uses a default ``template_name_suffix`` of ``_archive_week``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.dates import WeekArchiveView from django.views.generic.dates import WeekArchiveView
@ -361,7 +361,7 @@ WeekArchiveView
week_format = "%W" week_format = "%W"
allow_future = True allow_future = True
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -463,7 +463,7 @@ DayArchiveView
* Uses a default ``template_name_suffix`` of ``_archive_day``. * Uses a default ``template_name_suffix`` of ``_archive_day``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.dates import DayArchiveView from django.views.generic.dates import DayArchiveView
@ -475,7 +475,7 @@ DayArchiveView
make_object_list = True make_object_list = True
allow_future = True allow_future = True
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -537,7 +537,7 @@ TodayArchiveView
* Uses a default ``template_name_suffix`` of ``_archive_today``. * Uses a default ``template_name_suffix`` of ``_archive_today``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.dates import TodayArchiveView from django.views.generic.dates import TodayArchiveView
@ -549,7 +549,7 @@ TodayArchiveView
make_object_list = True make_object_list = True
allow_future = True allow_future = True
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -599,7 +599,7 @@ DateDetailView
* Uses a default ``template_name_suffix`` of ``_detail``. * Uses a default ``template_name_suffix`` of ``_detail``.
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
from django.views.generic.dates import DateDetailView from django.views.generic.dates import DateDetailView

View File

@ -36,7 +36,7 @@ DetailView
9. ``get()`` 9. ``get()``
10. :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response()` 10. :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response()`
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from django.utils import timezone from django.utils import timezone
@ -52,7 +52,7 @@ DetailView
context['now'] = timezone.now() context['now'] = timezone.now()
return context return context
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -62,6 +62,16 @@ DetailView
url(r'^(?P<slug>[-_\w]+)/$', ArticleDetailView.as_view(), name='article-detail'), url(r'^(?P<slug>[-_\w]+)/$', ArticleDetailView.as_view(), name='article-detail'),
) )
**Example myapp/article_detail.html**:
.. code-block:: html+django
<h1>{{ object.headline }}</h1>
<p>{{ object.content }}</p>
<p>Reporter: {{ object.reporter }}</p>
<p>Published: {{ object.pub_date|date }}</p>
<p>Date: {{ object.now|date }}</p>
ListView ListView
-------- --------
@ -111,7 +121,7 @@ ListView
context['now'] = timezone.now() context['now'] = timezone.now()
return context return context
**Example urls.py**:: **Example myapp/urls.py**::
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
@ -121,6 +131,19 @@ ListView
url(r'^$', ArticleListView.as_view(), name='article-list'), url(r'^$', ArticleListView.as_view(), name='article-list'),
) )
**Example myapp/article_list.html**:
.. code-block:: html+django
<h1>Articles</h1>
<ul>
{% for article in object_list %}
<li>{{ article.pub_date|date }} - {{ article.headline }}</li>
{% empty %}
<li>No articles yet.</li>
{% endfor %}
</ul>
.. class:: django.views.generic.list.BaseListView .. class:: django.views.generic.list.BaseListView
A base view for displaying a list of objects. It is not intended to be used A base view for displaying a list of objects. It is not intended to be used

View File

@ -42,7 +42,7 @@ FormView
* :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.edit.ProcessFormView`
* :class:`django.views.generic.base.View` * :class:`django.views.generic.base.View`
**Example forms.py**:: **Example myapp/forms.py**::
from django import forms from django import forms
@ -54,7 +54,7 @@ FormView
# send email using the self.cleaned_data dictionary # send email using the self.cleaned_data dictionary
pass pass
**Example views.py**:: **Example myapp/views.py**::
from myapp.forms import ContactForm from myapp.forms import ContactForm
from django.views.generic.edit import FormView from django.views.generic.edit import FormView
@ -70,6 +70,16 @@ FormView
form.send_email() form.send_email()
return super(ContactView, self).form_valid(form) return super(ContactView, self).form_valid(form)
**Example myapp/contact.html**:
.. code-block:: html+django
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Send message" />
</form>
CreateView CreateView
---------- ----------
@ -101,7 +111,7 @@ CreateView
creating objects for the example ``Author`` model would cause the creating objects for the example ``Author`` model would cause the
default ``template_name`` to be ``'myapp/author_create_form.html'``. default ``template_name`` to be ``'myapp/author_create_form.html'``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.edit import CreateView from django.views.generic.edit import CreateView
from myapp.models import Author from myapp.models import Author
@ -110,6 +120,15 @@ CreateView
model = Author model = Author
fields = ['name'] fields = ['name']
**Example myapp/author_form.html**:
.. code-block:: html+django
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Create" />
</form>
UpdateView UpdateView
---------- ----------
@ -143,7 +162,7 @@ UpdateView
updating objects for the example ``Author`` model would cause the updating objects for the example ``Author`` model would cause the
default ``template_name`` to be ``'myapp/author_update_form.html'``. default ``template_name`` to be ``'myapp/author_update_form.html'``.
**Example views.py**:: **Example myapp/views.py**::
from django.views.generic.edit import UpdateView from django.views.generic.edit import UpdateView
from myapp.models import Author from myapp.models import Author
@ -151,6 +170,16 @@ UpdateView
class AuthorUpdate(UpdateView): class AuthorUpdate(UpdateView):
model = Author model = Author
fields = ['name'] fields = ['name']
template_name_suffix = '_update_form'
**Example myapp/author_update_form.html**:
.. code-block:: html+django
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update" />
</form>
DeleteView DeleteView
---------- ----------
@ -184,8 +213,7 @@ DeleteView
deleting objects for the example ``Author`` model would cause the deleting objects for the example ``Author`` model would cause the
default ``template_name`` to be ``'myapp/author_check_delete.html'``. default ``template_name`` to be ``'myapp/author_check_delete.html'``.
**Example myapp/views.py**::
**Example views.py**::
from django.views.generic.edit import DeleteView from django.views.generic.edit import DeleteView
from django.core.urlresolvers import reverse_lazy from django.core.urlresolvers import reverse_lazy
@ -194,3 +222,12 @@ DeleteView
class AuthorDelete(DeleteView): class AuthorDelete(DeleteView):
model = Author model = Author
success_url = reverse_lazy('author-list') success_url = reverse_lazy('author-list')
**Example myapp/author_confirm_delete.html**:
.. code-block:: html+django
<form action="" method="post">{% csrf_token %}
<p>Are you sure you want to delete "{{ object }}"?</p>
<input type="submit" value="Confirm" />
</form>