1. 程式人生 > >在django模板中使用session資料

在django模板中使用session資料

在檢視中把資料放到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 }}