在 Django 中使用 crsipy 表单的消息框样式

Message box styling using crsipy form in Django

表单提交成功后,我想显示一个漂亮的绿色框来显示成功消息。

代码在views.py-

 upload.save()
 success = True
 messages.success(request, 'Result Uploaded Successfully.')

在html文件中-

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}

它显示为项目符号列表。

settings.py--

CRISPY_TEMPLATE_PACK = "bootstrap3"

如果有任何错误,则显示为红色框,但不会显示表单提交成功消息。

非常感谢任何帮助。提前致谢。

消息样式与 django-crispy-forms 无关。这是你需要自己做的事情。

这是与 bootstrap 3 一起使用的片段,我将其用于我的项目以正确显示 django 消息:

{% for message in messages %}
<div class="alert fade in {% if message.tags %} alert-{% if 'error' in message.tags %}danger{% else %}{{ message.tags }}{% endif %}{% endif %}">
    <a class="close" href="#" data-dismiss="alert">&times;</a>
    {{ message }}
</div>
{% endfor %}

所以你需要使用 div 而不是 li 并将其 class 更改为 alert alert-{{ message.tags }} (这将是危险,成功等)。请注意,bootstrap 3 需要 class 名称 alert-danger 来显示错误样式(红色边框),而 django 消息 return 错误 message.tags 中的错误,这就是为什么我在那里有 {% if %} 的原因。