Fixed #351 -- views.generic.list_detail.object_list now respects allow_empty when paginating. Thanks, kmh

git-svn-id: http://code.djangoproject.com/svn/django/trunk@618 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-09-02 22:54:12 +00:00
parent 5c22b8b4b7
commit 66d4db7b09
1 changed files with 11 additions and 8 deletions

View File

@ -40,12 +40,15 @@ def object_list(request, app_label, module_name, paginate_by=None, allow_empty=F
try: try:
object_list = paginator.get_page(page) object_list = paginator.get_page(page)
except InvalidPage: except InvalidPage:
raise Http404 if page == 0 and allow_empty:
object_list = []
else:
raise Http404
page = int(page) page = int(page)
c = Context(request, { c = Context(request, {
'object_list': object_list, 'object_list': object_list,
'is_paginated' : True, 'is_paginated': True,
'results_per_page' : paginate_by, 'results_per_page': paginate_by,
'has_next': paginator.has_next_page(page), 'has_next': paginator.has_next_page(page),
'has_previous': paginator.has_previous_page(page), 'has_previous': paginator.has_previous_page(page),
'page': page + 1, 'page': page + 1,
@ -56,11 +59,11 @@ def object_list(request, app_label, module_name, paginate_by=None, allow_empty=F
else: else:
object_list = mod.get_list(**lookup_kwargs) object_list = mod.get_list(**lookup_kwargs)
c = Context(request, { c = Context(request, {
'object_list' : object_list, 'object_list': object_list,
'is_paginated' : False 'is_paginated': False
}) })
if len(object_list) == 0 and not allow_empty: if len(object_list) == 0 and not allow_empty:
raise Http404 raise Http404
for key, value in extra_context.items(): for key, value in extra_context.items():
if callable(value): if callable(value):
c[key] = value() c[key] = value()
@ -103,7 +106,7 @@ def object_detail(request, app_label, module_name, object_id=None, slug=None,
else: else:
t = template_loader.get_template(template_name) t = template_loader.get_template(template_name)
c = Context(request, { c = Context(request, {
'object' : object, 'object': object,
}) })
for key, value in extra_context.items(): for key, value in extra_context.items():
if callable(value): if callable(value):