📝 Django

Messages Framework в Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
83
🌿
Уровень
Средний
🐦 💼 ✈️

Встроенный механизм для отображения одноразовых сообщений пользователю.

Отправка сообщений

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, 'Ошибка при создании задачи.')

Уровни сообщений

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

Отображение в шаблоне

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

В базовом шаблоне (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>

В CBV

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')

Настройка

# settings.py — уже настроено по умолчанию
INSTALLED_APPS = [..., 'django.contrib.messages', ...]
MIDDLEWARE = [..., 'django.contrib.messages.middleware.MessageMiddleware', ...]
TEMPLATES = [{'OPTIONS': {'context_processors': [
    'django.contrib.messages.context_processors.messages',
]}}]

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 134
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 85
📝

Django: Статические файлы

Статические файлы — CSS, JavaScript, изображения, шрифты. Django обрабатывает их особым образом: в разработке раздаёт...

📅 30.06.2026 👁️ 73

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!