Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #1229 -- Added allow_empty argument to archive_year and archive…

…_month date-based generic views

git-svn-id: http://code.djangoproject.com/svn/django/trunk@2337 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 73ddfd8bd2b0703573072809aa977d5ca335d101 1 parent e029c9f
@adrianholovaty adrianholovaty authored
Showing with 11 additions and 4 deletions.
  1. +5 −4 django/views/generic/date_based.py
  2. +6 −0 docs/generic_views.txt
View
9 django/views/generic/date_based.py
@@ -51,7 +51,7 @@ def archive_index(request, app_label, module_name, date_field, num_latest=15,
def archive_year(request, year, app_label, module_name, date_field,
template_name=None, template_loader=loader, extra_lookup_kwargs={},
- extra_context={}, context_processors=None):
+ extra_context={}, allow_empty=False, context_processors=None):
"""
Generic yearly archive view.
@@ -70,7 +70,7 @@ def archive_year(request, year, app_label, module_name, date_field,
lookup_kwargs['%s__lte' % date_field] = now
lookup_kwargs.update(extra_lookup_kwargs)
date_list = getattr(mod, "get_%s_list" % date_field)('month', **lookup_kwargs)
- if not date_list:
+ if not date_list and not allow_empty:
raise Http404
if not template_name:
template_name = "%s/%s_archive_year" % (app_label, module_name)
@@ -88,7 +88,8 @@ def archive_year(request, year, app_label, module_name, date_field,
def archive_month(request, year, month, app_label, module_name, date_field,
month_format='%b', template_name=None, template_loader=loader,
- extra_lookup_kwargs={}, extra_context={}, context_processors=None):
+ extra_lookup_kwargs={}, extra_context={}, allow_empty=False,
+ context_processors=None):
"""
Generic monthly archive view.
@@ -122,7 +123,7 @@ def archive_month(request, year, month, app_label, module_name, date_field,
lookup_kwargs['%s__lte' % date_field] = now
lookup_kwargs.update(extra_lookup_kwargs)
object_list = mod.get_list(**lookup_kwargs)
- if not object_list:
+ if not object_list and not allow_empty:
raise Http404
if not template_name:
template_name = "%s/%s_archive_month" % (app_label, module_name)
View
6 docs/generic_views.txt
@@ -168,6 +168,9 @@ The date-based generic functions are:
Yearly archive. Requires that the ``year`` argument be present in the URL
pattern.
+ **New in Django development version:** Takes an optional ``allow_empty``
+ parameter, as ``archive_index``.
+
Uses the template ``app_label/module_name_archive_year`` by default.
Has the following template context:
@@ -187,6 +190,9 @@ The date-based generic functions are:
default, which is a three-letter month abbreviation. To change it to use
numbers, use ``"%m"``.
+ **New in Django development version:** Takes an optional ``allow_empty``
+ parameter, as ``archive_index``.
+
Uses the template ``app_label/module_name_archive_month`` by default.
Has the following template context:
Please sign in to comment.
Something went wrong with that request. Please try again.