pay*_*ike 1 python forms django message
在我的主页中,我有一个登录表单和注册表单,我使用 form.is_valid() 来验证表单,
但不是
return render(request,'registration/login.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
我用
messages.error(request, 'username or password wrong.')
return redirect('/')
Run Code Online (Sandbox Code Playgroud)
我这样做是因为在
return render(request,'registration/login.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
form.is_valid() 失败后,刷新页面会导致弹出框说重新提交确认,我不想要这个,所以我使用第二种方法。
问题是有两种形式:登录和注册,我不能把错误信息放在一个地方,这会引起误导,那么如何在一个页面中显示两条信息?
您可以使用extra_tags消息框架中的消息来识别两个不同的消息。
例如,对于登录错误
messages.error(request, 'username or password wrong.', extra_tags='login')
Run Code Online (Sandbox Code Playgroud)
对于注册错误,
messages.error(request, 'username or password wrong.', extra_tags='signup')
Run Code Online (Sandbox Code Playgroud)
然后根据标签在模板中以适当的形式放置消息
{# login form #}
{%for message in messages %}
{%if "login" in message.tags %}
<p> {{message}} </p> {# show login error message #}
{%endif%}
{%endfor%}
{# signup form #}
{%for message in messages %}
{%if "signup" in message.tags %}
<p> {{message}} </p> {# show signup error message #}
{%endif%}
{%endfor%}
Run Code Online (Sandbox Code Playgroud)
更多参考添加额外的消息标签
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |