2012-07-09 40 views
2

我在使用Django的身份驗證系統時遇到了一些麻煩。我設法設置了登錄頁面,註銷頁面和基本配置文件頁面。現在我試圖將網站上的不同區域限制爲僅經過身份驗證的用戶。它適用於某些模板,而不適用於其他模板。Django身份驗證行爲很奇怪。 「有時」工作,並不總是

最奇怪的是,它可以工作/不在同一個模板中工作。

這是base.html文件:

<div id="account"> 
    {% if user.is_authenticated %} 
     Hello, <a href="{% url accounts-profile %}">{{ user.username }}</a>! | <a href="{% url accounts-logout %}">Log out</a> 
    {% else %} 
     <a href="{% url accounts-login %}">Log in</a> 
     or 
     <a href="#">Sign up</a> 
    {% endif %} 
</div> 


<div id="sidebar"> 
    {% if user.is_authenticated %} 
     <h3 id="plus" style="padding-top: 20px;"><a href="#">Sign up!</a></h3> 
     <a href="{% url accounts-login %}">Log in</a> 
    {% else %} 
     <div style="margin-top: 45px"> 
      <a href="{% url accounts-profile %}">Profile</a> 
     </div> 
    {% endif %}  
</div> 

作品在帳戶DIV,而不是在側邊欄股利。

有什麼建議嗎?

+1

您是否可以發佈您的觀點?你是否確保'context_instance = RequestContext(request)'請求上下文? – dm03514 2012-07-09 16:08:53

+0

這是base.html模板,所以沒有特定的視圖? – Mats 2012-07-09 16:11:49

+0

哪些視圖正在加載擴展它的模板? – dm03514 2012-07-09 16:31:21

回答

1

你有

{% if user.is_authenticated %} 
     <h3 id="plus" style="padding-top: 20px;"><a href="#">Sign up!</a></h3> 
     <a href="{% url accounts-login %}">Log in</a> 
{% else %} 

他爲什麼,如果他在目前登入註冊? 您可以嘗試{%if user.is_authenticated%}

+0

太棒了。這一直在困擾我整天。人爲錯誤。贏得! – Mats 2012-07-09 21:10:56

+1

我知道這個感覺的人,它有時候會讓我工作。然後,當我回家看看代碼,我就像阿哈! – 2012-07-10 00:49:18