在Django的模板中使用認證資料的方法

來源:互聯網
上載者:User
當前登入的使用者以及他(她)的許可權可以通過 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 %}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.