Django

Code

Changeset 2337

Show
Ignore:
Timestamp:
02/18/06 14:13:46 (3 years ago)
Author:
adrian
Message:

Fixed #1229 -- Added allow_empty argument to archive_year and archive_month date-based generic views

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/views/generic/date_based.py

    r2323 r2337  
    5252def archive_year(request, year, app_label, module_name, date_field, 
    5353        template_name=None, template_loader=loader, extra_lookup_kwargs={}, 
    54         extra_context={}, context_processors=None): 
     54        extra_context={}, allow_empty=False, context_processors=None): 
    5555    """ 
    5656    Generic yearly archive view. 
     
    7171    lookup_kwargs.update(extra_lookup_kwargs) 
    7272    date_list = getattr(mod, "get_%s_list" % date_field)('month', **lookup_kwargs) 
    73     if not date_list
     73    if not date_list and not allow_empty
    7474        raise Http404 
    7575    if not template_name: 
     
    8989def archive_month(request, year, month, app_label, module_name, date_field, 
    9090        month_format='%b', template_name=None, template_loader=loader, 
    91         extra_lookup_kwargs={}, extra_context={}, context_processors=None): 
     91        extra_lookup_kwargs={}, extra_context={}, allow_empty=False, 
     92        context_processors=None): 
    9293    """ 
    9394    Generic monthly archive view. 
     
    123124    lookup_kwargs.update(extra_lookup_kwargs) 
    124125    object_list = mod.get_list(**lookup_kwargs) 
    125     if not object_list
     126    if not object_list and not allow_empty
    126127        raise Http404 
    127128    if not template_name: 
  • django/trunk/docs/generic_views.txt

    r2323 r2337  
    169169    pattern. 
    170170 
     171    **New in Django development version:** Takes an optional ``allow_empty`` 
     172    parameter, as ``archive_index``. 
     173 
    171174    Uses the template ``app_label/module_name_archive_year`` by default. 
    172175 
     
    187190    default, which is a three-letter month abbreviation. To change it to use 
    188191    numbers, use ``"%m"``. 
     192 
     193    **New in Django development version:** Takes an optional ``allow_empty`` 
     194    parameter, as ``archive_index``. 
    189195 
    190196    Uses the template ``app_label/module_name_archive_month`` by default.