Fixed #3895 -- Added ability to customize the context variable in the archive_index generic view. Thanks to marco.giusti@gmail.com and toke-django@toke.de.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@6157 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2007-09-14 03:54:28 +00:00
parent 70e5dce365
commit 2bec822ff3
2 changed files with 10 additions and 3 deletions

View File

@ -10,7 +10,7 @@ from django.http import Http404, HttpResponse
def archive_index(request, queryset, date_field, num_latest=15,
template_name=None, template_loader=loader,
extra_context=None, allow_empty=False, context_processors=None,
mimetype=None, allow_future=False):
mimetype=None, allow_future=False, template_object_name='latest'):
"""
Generic top-level archive of date-based objects.
@ -39,7 +39,7 @@ def archive_index(request, queryset, date_field, num_latest=15,
t = template_loader.get_template(template_name)
c = RequestContext(request, {
'date_list' : date_list,
'latest' : latest,
template_object_name : latest,
}, context_processors)
for key, value in extra_context.items():
if callable(value):

View File

@ -201,6 +201,9 @@ a date in the *future* are not included unless you set ``allow_future`` to
specified in ``date_field`` is greater than the current date/time. By
default, this is ``False``.
* ``template_object_name``: Designates the name of the template variable
to use in the template context. By default, this is ``'latest'``.
**Template name:**
If ``template_name`` isn't specified, this view will use the template
@ -221,9 +224,13 @@ In addition to ``extra_context``, the template's context will be:
years that have objects available according to ``queryset``. These are
ordered in reverse. This is equivalent to
``queryset.dates(date_field, 'year')[::-1]``.
* ``latest``: The ``num_latest`` objects in the system, ordered descending
by ``date_field``. For example, if ``num_latest`` is ``10``, then
``latest`` will be a list of the latest 10 objects in ``queryset``.
``latest`` will be a list of the latest 10 objects in ``queryset``. This
variable's name depends on the ``template_object_name`` parameter, which
is ``'latest'`` by default. If ``template_object_name`` is ``'foo'``,
this variable's name will be ``foo``.
.. _RequestContext docs: ../templates_python/#subclassing-context-requestcontext