我正在使用Django和Backbone構建SPA。到目前爲止,我的大部分模板都在Django端,但現在我正在轉向使用Backbone/Underscore進行模板化。我不確定的唯一問題是如何管理與認證有關的頁面重新加載。Django + Backbone:用於登錄/註銷的下劃線模板
我沒有單獨的登錄頁面,而是應用程序菜單欄(Bootstrap導航欄)上的下拉登錄表單,它使$.ajax
請求登錄/註銷操作。我想讓應用程序界面公開可用,並且只在用戶登錄時渲染某些組件(加載,保存,導出按鈕),並在註銷時隱藏它們。頁面重新加載顯然必須知道用戶是否已登錄。這就是我如何管理它在我的Django模板:
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<!-- Menu left -->
<ul class="nav navbar-nav">
<!-- li components... -->
</ul>
<!-- Menu right -->
<ul class="nav navbar-nav pull-right" id="navbar-right">
{% if user.is_authenticated %}
<!-- If user is logged in render 'My Account' and 'Logout' components -->
<li id='menu-account'><a href='#'>My Account</a></li>
<li id='menu-logout'><a href='#'>Logout</a></li>
{% else %}
<!-- If logged out render the login form -->
<li id="menu-register"><a href="#">Register</a></li>
<li class="dropdown" id="menu-login">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="nav-login">Login</a>
<div class="dropdown-menu pull-right">
<form role="form" id="form-login" action="login/" method="POST">
<input class="form-control" name="username" id="username" placeholder="Username" type="text"><br>
<input class="form-control" name="password" id="password" placeholder="Password" type="password"><br>
<button type="submit" id="btn-login" class="btn btn-default">Login</button>
</form>
</div>
</li>
{% endif %}
</ul>
</div>
</nav>
這個作品非常漂亮,與服用條件呈現的護理Django的模板標籤。下劃線版本可能看起來不會有太大差別,但是如何確定用戶是否從客戶端登錄/退出?我正在考慮爲此添加一個響應頭,但是有沒有內置的Django方法呢?我查看了login_required
視圖裝飾器,但似乎需要在用戶註銷時重定向。
非常感謝您的答覆,並對延遲迴復表示歉意。 – ChrisM