#django
#django
Вопрос:
Итак, я хочу, чтобы мое приложение django уведомляло пользователей об определенных событиях с помощью флэш-сообщений. Например, сообщение об ошибке или сообщение об успешном завершении. Я знаю, что в flask есть встроенный flash
метод. Но есть ли какой-либо эквивалент в django? Если да, то не могли бы вы показать мне, как его использовать и оформить с помощью bootstrap. Заранее спасибо.
Ответ №1:
Платформа сообщений Django работает очень хорошо и проста в использовании с bootstrap.
Шаг 1. Поместите сообщение в ту точку потока, где вы хотите, чтобы сообщение запускалось. Это пример сообщения, которое выдается, когда форма успешно сохраняет данные формы:
if form.is_valid():
for fs in formsets:
if fs.is_valid():
# Messages test start
messages.success(request, "Profile updated successfully!")
# Messages test end
fs.save()
else:
messages.error(request, "It didn't save!")
Когда сообщение запускается, оно не появляется автоматически. Но оно хранится в очереди.
Шаг 2. Добавьте код в свой шаблон для отображения сообщений:
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
Это приведенная выше простая возможная реализация. Пример того же самого, но с тостами bootrstrap будет выглядеть примерно так:
{% if messages %}
{% for message in messages %}
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true" data-autohide="false">
<div class="toast-header">
<div class="toast-square"></div>amp;nbsp;
<strong class="mr-auto">Accounts</strong>
<small>Changes saved</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">amp;times;</span>
</button>
</div>
<div class="toast-body">
{{ message }}
</div>
</div>
{% endfor %}
{% endif %}
Ответ №2:
Вы могли бы использовать фреймворк message, поставляемый с Django.