2012-07-11 53 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 - 變量包含數據庫項目

相關問題