mirror of
https://github.com/django/django.git
synced 2025-01-12 19:37:06 +00:00
c4c7fbcc0d
Many thanks to Daniel Greenfeld, James Aylett, Marc Tamlyn, Simon Williams, Danilo Bargen and Luke Plant for their work on this.
87 lines
2.7 KiB
Plaintext
87 lines
2.7 KiB
Plaintext
=====================
|
|
Generic display views
|
|
=====================
|
|
|
|
The two following generic class-based views are designed to display data. On
|
|
many projects they are typically the most commonly used views.
|
|
|
|
.. class:: django.views.generic.detail.DetailView
|
|
|
|
While this view is executing, ``self.object`` will contain the object that
|
|
the view is operating upon.
|
|
|
|
**Ancestors (MRO)**
|
|
|
|
* :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin`
|
|
* :class:`django.views.generic.base.TemplateResponseMixin`
|
|
* :class:`django.views.generic.detail.BaseDetailView`
|
|
* :class:`django.views.generic.detail.SingleObjectMixin`
|
|
* :class:`django.views.generic.base.View`
|
|
|
|
**Method Flowchart**
|
|
|
|
1. :meth:`dispatch()`
|
|
2. :meth:`http_method_not_allowed()`
|
|
3. :meth:`get_template_names()`
|
|
4. :meth:`get_slug_field()`
|
|
5. :meth:`get_queryset()`
|
|
6. :meth:`get_object()`
|
|
7. :meth:`get_context_object_name()`
|
|
8. :meth:`get_context_data()`
|
|
9. :meth:`get()`
|
|
10. :meth:`render_to_response()`
|
|
|
|
**Example views.py**::
|
|
|
|
from django.views.generic.detail import DetailView
|
|
from django.utils import timezone
|
|
|
|
from articles.models import Article
|
|
|
|
class ArticleDetailView(DetailView):
|
|
|
|
model = Article
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super(ArticleDetailView, self).get_context_data(**kwargs)
|
|
context['now'] = timezone.now()
|
|
return context
|
|
|
|
**Example urls.py**::
|
|
|
|
from django.conf.urls import patterns, url
|
|
|
|
from article.views import ArticleDetailView
|
|
|
|
urlpatterns = patterns('',
|
|
url(r'^(?P<slug>[-_\w]+)/$', ArticleDetailView.as_view(), 'article-detail'),
|
|
)
|
|
|
|
.. class:: django.views.generic.list.ListView
|
|
|
|
A page representing a list of objects.
|
|
|
|
While this view is executing, ``self.object_list`` will contain the list of
|
|
objects (usually, but not necessarily a queryset) that the view is
|
|
operating upon.
|
|
|
|
**Mixins**
|
|
|
|
* :class:`django.views.generic.list.ListView`
|
|
* :class:`django.views.generic.list.MultipleObjectTemplateResponseMixin`
|
|
* :class:`django.views.generic.base.TemplateResponseMixin`
|
|
* :class:`django.views.generic.list.BaseListView`
|
|
* :class:`django.views.generic.list.MultipleObjectMixin`
|
|
* :class:`django.views.generic.base.View`
|
|
|
|
**Method Flowchart**
|
|
|
|
1. :meth:`dispatch():`
|
|
2. :meth:`http_method_not_allowed():`
|
|
3. :meth:`get_template_names():`
|
|
4. :meth:`get_queryset():`
|
|
5. :meth:`get_objects():`
|
|
6. :meth:`get_context_data():`
|
|
7. :meth:`get():`
|
|
8. :meth:`render_to_response():`
|