summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2006-02-18 20:13:46 +0000
committerAdrian Holovaty <adrian@holovaty.com>2006-02-18 20:13:46 +0000
commit73ddfd8bd2b0703573072809aa977d5ca335d101 (patch)
tree918cb01bbcab947728ff6a86850f2a36908da65c
parente029c9f7f8765b895ef2893cdf7fabe6dc5e9806 (diff)
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
-rw-r--r--django/views/generic/date_based.py9
-rw-r--r--docs/generic_views.txt6
2 files changed, 11 insertions, 4 deletions
diff --git a/django/views/generic/date_based.py b/django/views/generic/date_based.py
index a4746f0574..c02e545ed5 100644
--- a/django/views/generic/date_based.py
+++ b/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)
diff --git a/docs/generic_views.txt b/docs/generic_views.txt
index f9544e12b2..cd27027f2e 100644
--- a/docs/generic_views.txt
+++ b/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: