在Django的模板中使用認(rèn)證數(shù)據(jù)的方法
當(dāng)前登入的用戶以及他(她)的權(quán)限可以通過 RequestContext 在模板的context中使用。
注意
從技術(shù)上來說,只有當(dāng)你使用了 RequestContext這些變量才可用。 并且TEMPLATE_CONTEXT_PROCESSORS 設(shè)置包含了 “django.core.context_processors.auth” (默認(rèn)情況就是如此)時(shí),這些變量才能在模板context中使用。 TEMPLATE_CONTEXT_PROCESSORS 設(shè)置包含了 "django.core.context_processors.auth" (默認(rèn)情況就是如此)時(shí),這些變量才能在模板context中使用。
當(dāng)使用 RequestContext 時(shí), 當(dāng)前用戶 (是一個(gè) User 實(shí)例或一個(gè) AnonymousUser 實(shí)例) 存儲(chǔ)在模板變量 {{ user }} 中:
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
這些用戶的權(quán)限信息存儲(chǔ)在 {{ perms }} 模板變量中。
你有兩種方式來使用 perms 對(duì)象。 你可以使用類似于 {{ perms.polls }} 的形式來檢查,對(duì)于某個(gè)特定的應(yīng)用,一個(gè)用戶是否具有 任意 權(quán)限;你也可以使用 {{ perms.polls.can_vote }} 這樣的形式,來檢查一個(gè)用戶是否擁有特定的權(quán)限。
這樣你就可以在模板中的 {% if %} 語句中檢查權(quán)限:
{% 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 %}
相關(guān)文章
Python調(diào)用ChatGPT的API實(shí)現(xiàn)文章生成
最近ChatGPT大火,在3.5版本后開放了接口API,所以很多人開始進(jìn)行實(shí)操,這里我就用python來為大家實(shí)現(xiàn)一下,如何調(diào)用API并提問返回文章的說明2023-03-03
一個(gè)基于flask的web應(yīng)用誕生 記錄用戶賬戶登錄狀態(tài)(6)
一個(gè)基于flask的web應(yīng)用誕生第六篇,這篇文章主要介紹了記錄用戶賬戶登錄狀態(tài)功能開發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Python實(shí)現(xiàn)發(fā)送QQ郵件的封裝
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)發(fā)送QQ郵件的具體代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

