當前登入的使用者以及他(她)的許可權可以通過 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 %} Welcome, {{ user.username }}. Thanks for logging in.
{% else %} Welcome, new user. Please log in.
{% endif %}
這些使用者的許可權資訊儲存在 {{ perms }} 模板變數中。
你有兩種方式來使用 perms 對象。 你可以使用類似於 {{ perms.polls }} 的形式來檢查,對於某個特定的應用,一個使用者是否具有 任意 許可權;你也可以使用 {{ perms.polls.can_vote }} 這樣的形式,來檢查一個使用者是否擁有特定的許可權。
這樣你就可以在模板中的 {% if %} 語句中檢查許可權:
{% if perms.polls %} You have permission to do something in the polls app.
{% if perms.polls.can_vote %} You can vote!
{% endif %}{% else %} You don't have permission to do anything in the polls app.
{% endif %}