在Django使用crsipy形式的消息框样式

时间:2017-09-24 09:47:44

标签: python django django-crispy-forms

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

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"

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

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

1 个答案:

答案 0 :(得分:1)

消息样式与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并将其类更改为alert alert-{{ message.tags }}(这将是危险,成功等)。请注意,引导程序3需要类名alert-danger来显示错误样式(红色边框),而django消息在message.tags中返回错误,这是错误的原因,这就是我在那里{% if %}的原因。