Я использую систему сообщений django, чтобы показать тостовое сообщение. Я пытался запретить пользователям доступ к «выходу из системы», когда они не вошли в систему, и показал предупреждение. Когда я набираю URL в первый раз, он ничего не показывает, но со второго раза он продолжает показывать 2 сообщения с тостами.
Я пытался использовать это решение , но вместо удаления моего дублированного сообщения ничего больше не отображается.
def logout_request(request):
if not request.user.is_authenticated:
messages.warning(request, "You must log in to log out!")
return redirect("/")
logout(request)
messages.info(request, "Logged out successfully!")
return redirect("/")
<div class="message-wrapper">
{% for msg in messages %}
<div class="toast" data-autohide="true" data-delay="1500">
{% if msg.tags == 'success'%}
<div class="toast-header toast-header-success">
<strong class="mr-auto">Success</strong>
{% elif msg.tags == 'info'%}
<div class="toast-header toast-header-primary">
<strong class="mr-auto">Information</strong>
{% elif msg.tags == 'warning'%}
<div class="toast-header toast-header-warning">
<strong class="mr-auto">Warning</strong>
{% elif msg.tags == 'error'%}
<div class="toast-header toast-header-danger">
<strong class="mr-auto">Error</strong>
{% endif %}
<button type="button" class="ml-2 mb-1 close button-close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
{{ msg }}
</div>
</div>
{% endfor %}
</div>