我在我的网站上使用django-allauth来处理用户登录/注销/注册。
目前我只希望用户能够从网站上的每个页面登录/注册。
为此,我在base.html中添加了一个bootstrap模式,可以通过标题中的按钮访问。
<div class="modal-body">
<form method='post' action='/accounts/login/?next={{ request.get_full_path }}' id='login'>
{% csrf_token %}
{{ login_form|crispy }}
<input type='submit' class="btn btn-primary" value='Log In'>
</form>
</div>
我使用上下文处理器从allauth提供LoginForm:
from allauth.account.forms import LoginForm
def login_form(request):
return {
'login_form': LoginForm
}
只要登录数据正确,这就可以正常工作。我被重定向到具有登录状态的源页面。
现在,如果用户输入了错误的密码,则会显示/ accounts / login中的allauth模板,并显示错误消息。我想以一种方式覆盖LoginForm / LoginView,它从请求中调用视图并将表单(有错误)添加到上下文中。
这可能吗?
更新 我发现我可能需要在LoginView中覆盖form_invalid并将其设置为我将表单添加到context_processor中的视图?