From 73ddfd8bd2b0703573072809aa977d5ca335d101 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sat, 18 Feb 2006 20:13:46 +0000 Subject: [PATCH] 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 --- django/views/generic/date_based.py | 9 +++++---- docs/generic_views.txt | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/django/views/generic/date_based.py b/django/views/generic/date_based.py index a4746f05744..c02e545ed50 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 f9544e12b2b..cd27027f2e5 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: