在django模板中使用session資料
阿新 • • 發佈:2019-01-01
在檢視中把資料放到session裡面:
# 把角色名稱放到session裡面
roleid = request.POST.get('rolename', None)
if roleid != None and roleid != '':
role = get_object_or_404(Role, pk=int(roleid))
request.session["role"] = role
在檢視中從session裡面取出相應資料:
if "elementid" in request.session: equipment = Equipment.objects.get(elementid__exact=request.session["elementid"])
今天還遇到了另外一個問題,怎樣在django的模板中使用session資料:
這種用法是不行的:
{{ request.session["role"] }}
在django模板中呼叫的python函式是不能有引數的,有引數的都不符合語法規範(可以自定義過濾器解決)。
那麼在模板中該怎麼使用session資料呢?
django中關於session有這樣的定義:
在模板中可以對session變數用點語法像訪問字典一樣訪問session中的值。需要檢視所有session值的時候使用items方法。
意思就是可以把session看到一個普通字典,可以像訪問普通字典一樣訪問session中的值。所以可以這樣訪問:
{% for key,value in request.session.items %}
{% ifequal 'role' key %}
{{ value.role_name }}
{% endifequal %}
{% endfor %}
或者用“點語法”訪問:
{{ request.session.role.role_name }}