Функция success
Функция success применяется для добавления сообщения
с уровнем успеха в систему сообщений Django. Она принимает
объект запроса, строку с сообщением и опциональные
параметры для дополнительной настройки. Функция является
обёрткой над add_message с предустановленным
уровнем SUCCESS.
Синтаксис
success(request, message, extra_tags='', fail_silently=False)
Параметры
Функция принимает следующие параметры:
request - объект HTTP-запроса, к которому
будет привязано сообщение. Этот параметр обязателен.
message - строка с текстом сообщения, которое
будет отображаться пользователю. Этот параметр обязателен.
extra_tags - строка с дополнительными CSS-классами
для сообщения. Этот параметр опционален.
fail_silently - булевый флаг, определяющий,
будет ли игнорироваться ошибка при отключённом
механизме сообщений. По умолчанию False.
Пример
Давайте добавим сообщение об успешном сохранении статьи в представлении:
from 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-классами для стилизации:
from 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')
Пример
Давайте используем функцию в шаблоне для отображения сообщения:
# 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')
В шаблоне отображаем сообщение:
{% if messages %}
<div class="messages">
{% for message in messages %}
<div class="alert {{ message.tags }}">
{{ message }}
</div>
{% endfor %}
</div>
{% endif %}
Результат в браузере:
<div class="alert success">
Article was deleted
</div>
Смотрите также
-
функция
add_message,
которая добавляет сообщение с указанным уровнем -
функция
error,
которая добавляет сообщение об ошибке -
функция
warning,
которая добавляет предупреждение -
функция
get_messages,
которая получает все сообщения для запроса