您可以在模板中檢查登錄表單代碼。
您可以將登錄模板放入base_login.html
並在每個頁面上擴展它。
樣品基本模板代碼:
{% if not user.is_authenticated %}
<form action="{% url my_login_url %}" method="POST">
{% csrf_token %}
<input id="username_field" name="username" type="text" />
<input id="password_field" name="password" type="password" />
<button type="submit">Login</button>
</form>
此登錄形式將顯示僅當用戶沒有被認證。
然後寫一個login
頁面的視圖和一個LoginForm
來處理登錄過程。
views.py
class LoginView(FormView):
...
your login and redirection logic here
...
forms.py
class LoginForm(forms.Form):
username = ..
password = ..
...
your form validations and other logic
...
所以,無論是任何頁面,登錄表單將只顯示,如果用戶沒有的loggedIn,所有這些登錄請求將僅限於您的LoginView
。 您不必擔心在每個視圖中處理登錄邏輯。
所以你在說什麼是你目前在每個視圖中執行表單邏輯,而不是一次執行? –
是的,我可能在將來有更多的意見,它似乎ridicoulus – davegri