How to display multiple django messages in one page?
django, forms, message, python
Solution
You can use `extra_tags` for message from messages framework to identify two different messages.
For example, for login errors
messages.error(request, 'username or password wrong.', extra_tags='login')
for sign up errors,
messages.error(request, 'username or password wrong.', extra_tags='signup')
And then in template depending upon tag you put message in appropriate form
{# 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%}
More reference at Adding extra message tags
Problem
In my home page I have a login form and sign up form, and i use the form.is_valid() to validate the form, but instead of ``` return render(request,'registration/login.html', {'form': form}) ``` I use ``` messages.error(request, 'username or password wrong.') return redirect('/') ``` am doing this because in ``` return render(request,'registration/login.html', {'form': form}) ``` after the form.is_valid() fail, refresh the page will cause a pop out box says resubmit confirm,I dont want this,so am using the second method. the problem is that there is two form: login and signup , I can't put the error message in one place,that will be misleading ,so how to display two message in one page?