The messages framework stores one-time notifications (success, error, info) across redirects—"Article saved!" after POST/redirect/GET pattern.
Usage
from django.contrib import messages
def create_article(request):
if form.is_valid():
form.save()
messages.success(request, "Article saved.")
return redirect("index")
Template
{% if messages %}
{% for message in messages %}
<div class="alert {{ message.tags }}">{{ message }}</div>
{% endfor %}
{% endif %}
Requires django.contrib.messages in INSTALLED_APPS and MessageMiddleware.
Important interview questions and answers
- Q: Why messages with redirect?
A: PRG pattern (POST-redirect-GET) prevents duplicate submits; messages carry feedback to the next GET. - Q: Message storage backends?
A: Session storage default; cookie fallback—session is typical. - Q: messages vs template context?
A: Messages persist one request across redirect; context is immediate to current response.
Self-check
- What HTTP pattern pairs well with flash messages?
- Which middleware enables messages?