[英]How to display several matplotlib plots in one django template page
[英]How to display multiple django messages in one page?
在我的主页上,我有一个登录表单和一个注册表单,并且我使用form.is_valid()来验证表单,
但是代替
return render(request,'registration/login.html', {'form': form})
我用
messages.error(request, 'username or password wrong.')
return redirect('/')
之所以这样做是因为
return render(request,'registration/login.html', {'form': form})
在form.is_valid()失败后,刷新页面将导致弹出框显示重新提交确认,我不想要这个,因此正在使用第二种方法。
问题是登录和注册有两种形式,我不能将错误消息放在一个地方,这会引起误解,那么如何在一页中显示两个消息呢?
您可以对消息框架中的消息使用extra_tags
来标识两个不同的消息。
例如,对于登录错误
messages.error(request, 'username or password wrong.', extra_tags='login')
对于注册错误,
messages.error(request, 'username or password wrong.', extra_tags='signup')
然后在模板中根据标签将消息以适当的形式放置
{# 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%}
有关添加额外消息标签的更多参考
您可以使用form.errors字典,如果表单无效,他将存储字段名称和错误消息,例如:
>>> print form.errors
{'password': [u'This field is required']}
然后可以在模板中使用:
{% if 'username' in form.errors.keys %}
<div class="error-message">
Your username input error message!
</div>
{% endif %}
{% if 'password' in form.errors.keys %}
<div class="error-message">
Your password input error message!
</div>
{% endif %}
我能看到的唯一问题是输出消息,她有点丑=]但您可以使用其他技巧来使它更漂亮,例如使用其他字典来存储漂亮消息并通过字段名称获取他。您做出选择。
*对不起,我的英语不好 ;/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.