1

設定しています

request.session['total_items'] = 3

django アプリの views.py ファイルで

テンプレートで、次のようにアクセスできることを知りました{{request.session.total_items}}

すべてが順調で、価値を得ることができます。

{{request.session['total_items']}}ただし、 request.session はオブジェクトのような辞書であるため、代わりにそうではない理由が私の質問です。

の場合{{request.session['total_items']}}、次のようなエラーが発生します。

Could not parse the remainder: '['total_items']' from 'request.session['total_items']'

任意の助けをいただければ幸いです...

4

2 に答える 2

2

Django テンプレート言語と Python 構文を混同しないでください。Django テンプレート言語は、それ自体が言語であり、独自の実行方法を持っています。ドキュメントが示唆するように:

目標は、プログラミング言語を発明することではありません。目標は、プレゼンテーション関連の決定を下すために不可欠な、分岐やループなどのプログラミング風の機能を十分に提供することです。

于 2013-06-13T06:26:55.213 に答える
1

django.core.context_processors.requestを有効にすると、.表記法を使用して辞書のようなオブジェクトの値にアクセスできるようになります。これにより、任意の Python オブジェクトが、Django テンプレート言語が独自の言語として理解できるものに変換されます。

これは、次の場合にも当てはまります。

  1. 属性検索 (例: myobject.age)
  2. メソッド呼び出し (例: myobject.age())
  3. リスト インデックス (例: mylist.1)

裏で動いているのがContextオブジェクトです。 詳細については、こちらこちらをご覧ください。

ifまた、Python の制御構造を Django のテンプレート言語と比較できます。

if object:
    myobject.dostuff()

{% if object %}
    {{ myobject.dostuff }}
{% endif %}

Pythonに近いものが必要な場合は、チェックアウトする必要があります

于 2013-06-13T06:27:26.860 に答える