📝 Django

Messages Framework in Django

P
Author
Pyland
📅
Published
30.06.2026
⏱️
Reading time
1 min
👁️
Views
86
🌿
Level
Medium

A built-in mechanism for displaying one-time messages to the user.

Sending messages

from django.contrib import messages

def task_create(request):
    if form.is_valid():
        form.save()
        messages.success(request, 'Задача успешно создана!')
        return redirect('task-list')
    messages.error(request, 'Ошибка при создании задачи.')

Message levels

messages.debug(request, 'Отладочное сообщение')
messages.info(request, 'Информация')
messages.success(request, 'Успешно!')
messages.warning(request, 'Внимание!')
messages.error(request, 'Ошибка!')

Displaying messages in a template

{% if messages %}
<div class="messages">
  {% for message in messages %}
  <div class="alert alert-{{ message.tags }}">
    {{ message }}
  </div>
  {% endfor %}
</div>
{% endif %}

In the base template (base.html)

<!DOCTYPE html>
<html>
<body>
  {% if messages %}
    {% for message in messages %}
      <div class="alert-{{ message.level_tag }}">{{ message }}</div>
    {% endfor %}
  {% endif %}
  {% block content %}{% endblock %}
</body>
</html>

In CBVs

from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic import CreateView

class TaskCreateView(SuccessMessageMixin, CreateView):
    model = Task
    fields = ['title', 'description']
    success_message = 'Задача "%(title)s" создана!'
    success_url = reverse_lazy('task-list')

Configuration

# settings.py — already configured by default
INSTALLED_APPS = [..., 'django.contrib.messages', ...]
MIDDLEWARE = [..., 'django.contrib.messages.middleware.MessageMiddleware', ...]
TEMPLATES = [{'OPTIONS': {'context_processors': [
    'django.contrib.messages.context_processors.messages',
]}}]

Your reaction to the article

💬 Comments (0)

🔐 Sign in to leave a comment
🚪 Login
💭

No comments yet

Be the first to share your opinion about this article!

🔗 Similar

Similar articles

Continue learning with these materials

📝

pytest-django: Testing Django

Охватываемые темы: Installation, @pytest.mark.djangodb, Fixtures, Testing views.

📅 30.06.2026 👁️ 138
📝

Django: Template Tags

Template tags are logic inside HTML. Unlike {{ variable }} which only outputs a value,...

📅 30.06.2026 👁️ 85
📝

Django: Static Files

Static files are CSS, JavaScript, images, and fonts. Django handles them in a specific way:...

📅 30.06.2026 👁️ 75

Did you like the article?

Subscribe to our updates and receive new articles first. Grow with PyLand!