如何在Django中使用toastr来获取成功或失败的消息

时间:2017-07-10 05:19:56

标签: python django toastr

我一直在使用Django消息框架来显示我的应用程序中的成功或失败消息。但我希望用户界面很好,所以我发现toastr是向用户显示消息的好方法。但我不知道如何使用它。请指导我完成这个。

以下功能将用户保存到数据库,保存用户信息时会显示一条消息:

def addSubscriber(request):
    template = 'addSubscriber.html'

    if request.method == 'POST':
        form = addSubsForm(request.POST)
        if form.is_valid():
            f = form.save(commit=False)
            f.save()
            messages.success(request, "The Subscriber has been successfully added")
            return redirect('report')

        else:
            messages.error(request, "Sorry the data has not been entered to the database")

    else:
        form = addSubsForm()

    return render(request, template, {'form': form})

以下模板显示了消息的显示:

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

3 个答案:

答案 0 :(得分:3)

感谢这个问题,我能够使用python实现toastr,这是Neeraj Kumar给出的更完整的答案。

就我而言,这比实现要好得多,因为该CSS套件会破坏我自己的CSS代码,并且我没有时间进行CSS调试。

首先,在模板中,您必须设置JS文件,例如:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="{% static 'css/toastr.css' %}" media="all">
<script type="text/javascript" src="{% static 'js/toastr.min.js' %}"></script>  

接下来,在正文中,您可以放置​​Toast消息的选项(可以轻松创建这些选项in the Toastr demo page.

最后,如果您使用的是django消息框架的标准标签,请插入此代码块

    {% if messages %}
        {% for message in messages %}
            {% if message.tags == 'success'%}
                <script type=text/javascript>toastr.{{ message.tags }}('{{ message }}')</script>
            {% elif message.tags == 'info' %}
                <script type=text/javascript>toastr.{{ message.tags }}('{{ message }}')</script>
            {% elif message.tags == 'warning' %}
                <script type=text/javascript>toastr.{{ message.tags }}('{{ message }}')</script>
            {% elif message.tags == 'error' %}
                <script type=text/javascript>toastr.{{ message.tags }}('{{ message }}')</script>
            {% endif %}
        {% endfor %}
    {% endif %}

我希望这对其他人有帮助并节省时间。

答案 1 :(得分:1)

在html代码中添加toastr js和css然后在下面写下代码以显示toastr消息

 {% for message in messages %} 
   toastr.{{ message.tags }}({{ message }});
 {% endfor %} 

答案 2 :(得分:0)

很好的方法,只是忘了在消息周围加上引号“”