我正在使用django,我想存储一个对象(在会话中?),所以我可以在多个模板中使用它。所以类似于总是可访问的“用户”,id喜欢添加我自己的一个。所以我不必每次都在渲染中添加它(请求,
到目前为止我尝试了什么:
def login_character(request, character_name):
request.session['character'] = Character.objects.get(name=character_name)
return HttpResponseRedirect(reverse('index'))
模板:
{% if 'character' in request.session %}
<p>Jeej there is some character</p>
{{ request.session.character.name }}
{% else %}
<p>Nope, nothing here</p>
{% endif %}
但这似乎不起作用, 有人可以帮助我或指出正确的方向吗?
亲切的问候, 汉斯
答案 0 :(得分:3)
我认为你的意思是
{% if 'character' in request.session %}
而不是
{% if 'character' in request.session['character'] %}
此外,您写道您需要会话,因为您希望始终可以访问对象,而无需在每个视图中明确添加它。在这种情况下,我认为template context processor可能是更好的选择。
更新:您还需要确保django.core.context_processors.request
位于设置文件中的template context processors之内。另请参阅this answer。