displaying flash message django
Step 1: Import the necessary modules in your Django views.py file.
from django.contrib import messages
from django.shortcuts import render, redirect
Step 2: In your view function, use the messages
module to add a message to the request.
def your_view_function(request):
# Your view logic here
messages.success(request, 'Your success message.')
# or use messages.warning(), messages.error(), or messages.info() for different message types
return render(request, 'your_template.html')
Step 3: In your HTML template, display the messages using a loop.
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
Step 4: Ensure that the template includes the {% load messages %}
tag at the top to load the messages template tags.
{% load messages %}
<!DOCTYPE html>
<html>
<head>
<!-- Your head content -->
</head>
<body>
<!-- Your body content -->
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
<!-- Your body content continues -->
</body>
</html>
Step 5: Ensure that the Django messages middleware is included in your MIDDLEWARE
setting in the settings.py file.
MIDDLEWARE = [
# Other middleware classes
'django.contrib.messages.middleware.MessageMiddleware',
# Other middleware classes
]
Step 6: Also, include the messages context processor in your TEMPLATES
setting in the settings.py file.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / "templates"],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Other context processors
'django.contrib.messages.context_processors.messages',
# Other context processors
],
},
},
]