РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
376 of 818 menu

Функция add_message

Функция add_message применяется для добавления сообщений в систему уведомлений Django. Сообщения сохраняются в сессии пользователя и отображаются при следующем рендеринге шаблона. Функция принимает объект запроса, уровень важности сообщения, текст сообщения и дополнительные параметры. Уровни важности определяются константами модуля messages.

Синтаксис

from django.contrib import messages messages.add_message(request, level, message, extra_tags='', fail_silently=False)

Параметры

Функция принимает следующие параметры:

  • request - объект запроса HttpRequest
  • level - уровень важности сообщения (константы из django.contrib.messages)
  • message - текст сообщения (строка)
  • extra_tags - дополнительные CSS-классы для сообщения (опционально)
  • fail_silently - подавлять ли ошибки при добавлении сообщения (опционально)

Пример

Добавим успешное сообщение после сохранения статьи в базе данных:

from django.contrib import messages from django.shortcuts import redirect from myapp.models import Article def create_article(request): if request.method == 'POST': title = request.POST.get('title') content = request.POST.get('content') article = Article.objects.create( title=title, content=content ) messages.add_message( request, messages.SUCCESS, 'Article created successfully' ) return redirect('article_list') return render(request, 'article_form.html')

Пример

Добавим сообщение об ошибке с дополнительными CSS-классами:

from django.contrib import messages from django.shortcuts import redirect def delete_article(request, pk): try: article = Article.objects.get(pk=pk) article.delete() messages.add_message( request, messages.SUCCESS, 'Article deleted successfully' ) except Article.DoesNotExist: messages.add_message( request, messages.ERROR, 'Article not found', extra_tags='danger' ) return redirect('article_list')

Пример

Добавим информационное сообщение с использованием встроенных функций-обёрток:

from django.contrib import messages from django.shortcuts import redirect def update_article(request, pk): if request.method == 'POST': try: article = Article.objects.get(pk=pk) article.title = request.POST.get('title') article.save() messages.success( request, 'Article updated successfully' ) except Article.DoesNotExist: messages.error( request, 'Article not found for update' ) return redirect('article_detail', pk=pk) return render(request, 'article_form.html')

Пример

Получим все сообщения для отображения в шаблоне:

from django.contrib import messages def show_messages(request): storage = messages.get_messages(request) res = [] for message in storage: res.append({ 'level': message.level, 'message': message.message, 'tags': message.tags }) return render(request, 'messages.html', {'messages': res})

Результат выполнения кода:

[ {'level': 25, 'message': 'Article created successfully', 'tags': 'success'}, {'level': 40, 'message': 'Article not found', 'tags': 'error danger'} ]

Смотрите также

  • функция success,
    которая добавляет успешное сообщение
  • функция error,
    которая добавляет сообщение об ошибке
  • функция info,
    которая добавляет информационное сообщение
  • функция get_messages,
    которая получает все сообщения из хранилища
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить