访问request.session中的序列化值

时间:2015-01-29 15:12:59

标签: django django-templates

希望这是一个相当简单的问题。

如果我在request.session中存储了以下内容。假设我有多个项目(这里只显示一个),我希望能够遍历这些项目并将它们作为模板的一部分进行渲染。

如何在for循环中访问数量键和值?

这是我正在尝试的,但是没有输出。

{% for item in request.session.bookingContents.items %}
    {{ item.quantity }}
{% endfor %}

变量:

'bookingContents'   

值:

{u'cartID': 51, 
u'items': 
    {u'1': 
        {
        u'quantity': 25}, 
        }
    }
}

更多信息(随着这个问题的发展而更新):

活动模板上下文处理器是:

'django.core.context_processors.request',
'django.contrib.auth.context_processors.auth',
#allauth specific template processors below
'allauth.account.context_processors.account',
'allauth.socialaccount.context_processors.socialaccount',
'django.contrib.messages.context_processors.messages',

1 个答案:

答案 0 :(得分:0)

您需要将django.core.context_processors.request添加到template context processors

将此添加到您的settings.py

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.core.context_processors.request',
)

然后,您可以通过这样的模板访问会话,并且您的代码可以正常运行:

{{ request.session.foo}}

更新:

好的,您的设置和视图很好,然后您可以尝试:

{% for key, value in request.session.bookingContents.items.items %}
    {{ value.quantity }}
{% endfor %}