2012-07-11 42 views
1

我的应用程序的模板标签代码在上下文变量中丢失了KeyError(page)。在我的模板中,我没有使用context.variableKeyName引用上下文变量,我只是引用variableKeyName(例如{% if is_paginated %})。在我的模板中,我可以参考page,没有任何例外。django模板中的上下文KeyErrorTag

我应该如何获得它需要的关键字到我的模板标签中?


下面是详细信息:

我使用Django的配置文件来恢复的一些配置文件的列表:

url(r'^profiles/$', 'profiles.views.profile_list', 
kwargs={ 'paginate_by':10 }, 
name='profiles_profile_detail'), 

这就要求在这里这段代码: https://bitbucket.org/ubernostrum/django-profiles..

在我的模板中,在我呼叫模板标签之前,我测试了{% if is_paginated %}

{% if is_paginated %}{% load paginator %}{% paginator 3 %}{% endif %} 

(我用从http://www.tummy.com/.../django-pagination/灵感templatetag更新的Django的1.3 http://djangosnippets.org/snippets/2680/

但是,这导致了KeyError异常的 '分页'。

回答

1

http://djangosnippets.org/snippets/2680/的文档(类注释)说:

必需的环境变量:分页:本Paginator.page()实例。

它也可以用来在模板标签:

paged = context['paged'] 

您需要提供这个上下文变量此模板标签的工作。我认为你最好的选择是复制profiles.views.profile_list视图的代码并添加这个上下文变量。不幸的是,它仍然是一个基于功能的视图 - 否则扩展它会变得更加干净和容易。

+0

感谢西蒙。不是我的模板中隐含的上下文(因为page&is_paginated可以被引用而没有错误?)。我认为相同的隐式上下文会传递给模板标签。如果我正确理解你的回答,我需要明确地设置视图代码中的上下文或页面变量吗? – jedierikb 2012-07-11 15:16:44

+0

啊......分页!=页面 – jedierikb 2012-07-11 15:21:05

0

代码的正确方法是:

{% paginator v 3 %} 

v - 变量包含数据库项目

相关问题