Функция success

Функция success применяется для добавления сообщения с уровнем успеха в систему сообщений Django. Она принимает объект запроса, строку с сообщением и опциональные параметры для дополнительной настройки. Функция является обёрткой над add_message с предустановленным уровнем SUCCESS.

Синтаксис

pythonsuccess(request, message, extra_tags='', fail_silently=False)

Параметры

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

request - объект HTTP-запроса, к которому будет привязано сообщение. Этот параметр обязателен.

message - строка с текстом сообщения, которое будет отображаться пользователю. Этот параметр обязателен.

extra_tags - строка с дополнительными CSS-классами для сообщения. Этот параметр опционален.

fail_silently - булевый флаг, определяющий, будет ли игнорироваться ошибка при отключённом механизме сообщений. По умолчанию False.

Пример

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

pythonfrom django.contrib import messages
from django.shortcuts import redirect
from myapp.models import Article

def create_article(request):
  if request.method == 'POST':
    # saving article logic
    messages.success(request, 'Article created successfully')
    return redirect('article_list')
  
  return render(request, 'article_form.html')

Пример

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

pythonfrom django.contrib import messages
from django.shortcuts import render

def update_profile(request):
  if request.method == 'POST':
    # updating profile logic
    messages.success(
      request,
      'Profile updated successfully',
      extra_tags='alert alert-success'
    )
    return render(request, 'profile.html')
  
  return render(request, 'profile_form.html')

Пример

Давайте используем функцию в шаблоне для отображения сообщения:

python# views.py
from django.contrib import messages
from django.shortcuts import render

def delete_article(request, pk):
  # deleting article logic
  messages.success(request, 'Article was deleted')
  return render(request, 'article_list.html')

В шаблоне отображаем сообщение:

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

Результат в браузере:

html<div class="alert success">
  Article was deleted
</div>

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

  • функция add_message,
    которая добавляет сообщение с указанным уровнем
  • функция error,
    которая добавляет сообщение об ошибке
  • функция warning,
    которая добавляет предупреждение
  • функция get_messages,
    которая получает все сообщения для запроса