您可以在模板中检查登录表单代码。
您可以将登录模板放入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