簡體   English   中英

基於django的用戶身份驗證

[英]User Authentication based on if logged in or not django

我正在構建的應用程序存在問題。 我了解如何驗證django中的用戶是否已登錄以及他們的會話是否在以下情況下處於活動狀態:

if user is not None and user.is_active:

我的問題是我的django模板,特別是“ Register | Login ”部分Register | Login Register | Login如下所示:

                <div id="subnav_registrationLogin">
                    <ul>
                    {% block block_containersupernav %}
                        <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
                        <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
                    {% endblock block_containersupernav %}
                    </ul>
                </div><!-- /subnav_registrationLogin -->

問題是,我的模板是靜態的,因此上面的這個小代碼片段需要更動態,例如:

if user is not None and user.is_active:
   Log Out

elif:
   <div id="subnav_registrationLogin">
   <ul>
   {% block block_containersupernav %}
      <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
      <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
   {% endblock block_containersupernav %}
   </ul>
</div><!-- /subnav_registrationLogin -->

如何在模板中實現此目標? 如果我不能在模板中,該如何做? 謝謝!

模板是根據上下文呈現的。 所以試試這個:

{% if user.is_authenticated %}
    <a href="{% url logout %}">Logout</a>
{% else %}
    <div id="subnav_registrationLogin">
       <ul>
       {% block block_containersupernav %}
          <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
          <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
       {% endblock block_containersupernav %}
       </ul>
    </div>
{% endif %}

is_authenticated() django.contrib.auth.user模型中的輔助方法

另外,請注意is_active標志用於檢查用戶是否處於活動狀態,並且應用於檢查用戶是否可以成功登錄系統。

您還可以使用模板中的request.user.is_authenticated訪問當前登錄的用戶。

像這樣嗎?

{% if user.is_authenticated %}
<li><a href="{% url "logout" %}">Logout</a></li>
{% else %}
<div id="subnav_registrationLogin">
   <ul>
   {% block block_containersupernav %}
      <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
      <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
   {% endblock block_containersupernav %}
   </ul>
</div><!-- /subnav_registrationLogin -->
{% endif %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM