1

page私のアプリのtemplatetagコードは、コンテキスト変数に欠落しているキー()に対​​して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 %}テンプレートでは、templatetagを呼び出す前にテストします。

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

(私はhttp://www.tummy.com/.../django-pagination/からインスピレーションを得てdjango 1.3用に更新されたテンプレートタグを使用していますhttp://djangosnippets.org/snippets/2680/

しかし、これは'paged'の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-dbアイテムを含む変数

于 2012-12-31T14:15:07.437 に答える