在Django的模板中使用認證數據的方法
當前登入的用戶以及他(她)的權限可以通過 RequestContext 在模板的context中使用。
注意
從技術上來說,只有當你使用了 RequestContext這些變量才可用。 并且TEMPLATE_CONTEXT_PROCESSORS 設置包含了 “django.core.context_processors.auth” (默認情況就是如此)時,這些變量才能在模板context中使用。 TEMPLATE_CONTEXT_PROCESSORS 設置包含了 "django.core.context_processors.auth" (默認情況就是如此)時,這些變量才能在模板context中使用。
當使用 RequestContext 時, 當前用戶 (是一個 User 實例或一個 AnonymousUser 實例) 存儲在模板變量 {{ user }} 中:
{% if user.is_authenticated %} <p>Welcome, {{ user.username }}. Thanks for logging in.</p> {% else %} <p>Welcome, new user. Please log in.</p> {% endif %}
這些用戶的權限信息存儲在 {{ perms }} 模板變量中。
你有兩種方式來使用 perms 對象。 你可以使用類似于 {{ perms.polls }} 的形式來檢查,對于某個特定的應用,一個用戶是否具有 任意 權限;你也可以使用 {{ perms.polls.can_vote }} 這樣的形式,來檢查一個用戶是否擁有特定的權限。
這樣你就可以在模板中的 {% if %} 語句中檢查權限:
{% if perms.polls %} <p>You have permission to do something in the polls app.</p> {% if perms.polls.can_vote %} <p>You can vote!</p> {% endif %} {% else %} <p>You don't have permission to do anything in the polls app.</p> {% endif %}
相關文章
Python中的pathlib.Path為什么不繼承str詳解
這篇文章主要給大家介紹了關于Python中pathlib.Path為什么不繼承str的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06【Python】Python的urllib模塊、urllib2模塊批量進行網頁下載文件
這篇文章主要介紹了Python的urllib模塊、urllib2模塊批量進行網頁下載文件,就是一個簡單的從網頁抓取數據、下載文件的小程序,需要的可以了解一下。2016-11-11