1

page我的应用程序的模板标签代码为上下文变量中缺少的键 ( ) 引发 KeyError 。在我的模板中,我不使用 context.variableKeyName 来引用上下文变量,我只是引用 variableKeyName(例如{% if is_paginated %})。在我的模板中,我可以page毫无例外地引用密钥。

我应该如何将上下文与它需要的键一起放入我的模板标签中?


以下是详细信息:

我正在使用 django-profiles 返回一些配置文件的列表:

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/为 django 1.3 http://djangosnippets.org/snippets/2680/更新)

但这会导致“分页”的 KeyError。

4

2 回答 2

1

http://djangosnippets.org/snippets/2680/的文档(课堂评论)说:

必需的上下文变量: paged:Paginator.page() 实例。

它也用于模板标签:

paged = context['paged']

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

于 2012-07-11T15:05:09.843 回答
0

正确的编码方式是:

{% paginator v 3 %}

v- 包含数据库项目的变量

于 2012-12-31T14:15:07.437 回答