在django模板中访问会话值

在django模板中访问会话值,django,session,django-templates,Django,Session,Django Templates,我正在准备 request.session['total_items'] = 3 在django应用程序的views.py文件中 模板中 我知道您可以通过{{request.session.total_items}} 一切都很好,我能够得到价值 然而,我的问题是,为什么它不是{{request.session['total_items']}},因为request.session是一个类似字典的对象 对于{request.session['total_items']},它给出了如下错误: Cou

我正在准备

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']'

任何帮助都将不胜感激……

不要将Django模板语言与Python语法混淆。Django模板语言是一种独立的语言,有自己的执行方式。正如建议的那样:

目标不是发明一种编程语言。目标是提供 只需要足够的编程功能,比如分支和 循环,这对于做出与演示文稿相关的决策至关重要

启用后,它将启用对具有
符号的类似字典的对象的值的访问。 这将把任何Python对象转换成Django模板语言可以理解的东西,因为它是自己的语言

if object:
    myobject.dostuff()
这也适用于以下情况:

Could not parse the remainder: '['total_items']' from 'request.session['total_items']'
  • 属性查找(例如myobject.age)
  • 方法调用(例如myobject.age())
  • 列表索引(例如mylist.1)
  • 幕后运作的是 你可以阅读更多关于它是如何工作的以及

    您可以将PythonControlStructure
    if
    与Django的模板语言进行比较

    if object:
        myobject.dostuff()
    

    如果您想与Python进行更接近的匹配,您应该查看


    我想知道为什么投反对票?若特定的代码在Python中工作,那个么它的行为应该和Django模板中的行为完全一样,这是不能争辩的?问题的逻辑是为什么它的行为不同OP肯定知道点表示法是有效的。感谢Aamir的评论:)