Env:Python 2.7.3 || Django 1.4.1比較字符串和數據庫對象django
我想限制基於登錄用戶的角色的網頁菜單選項。我已經在模型中創建了一個UserProfile類,並將其鏈接到了用戶,如文檔中所描述的那樣(在添加用戶時,在Django Admin中完美工作)。例如,普通用戶只有「家庭」和「mytasks」,而管理員用戶也會擁有「域名任務」。
這裏是在base.html文件模板代碼:
{% if user.get_profile.role == "Admin" %}
<ul id="nav">
<li><a href="{% url home %}">Home</a></li>
<li><a href="{% url mytasks %}">My Tasks</a></li>
<li><a href="{% url domaintasks %}">Domain Tasks</a></li>
</ul>
以上渲染整個網站的導航欄時被選中。
我認爲問題在於比較一個字符串與數據庫對象(下面打印),但一直沒能找到如何讓比較工作。
>>> b = Role.objects.all()
>>> print b
[<Role: Admin>, <Role: User>]
以爲我並不遙遠,在我的腦海中,我將符號鏈接的角色對象添加到角色的屬性中......添加了atrribute並且它現在可以工作! – Sawwy