【问题标题】:How to use toastr in Django for success or fail message如何在 Django 中使用 toastr 获取成功或失败消息
【发布时间】:2017-12-13 17:27:37
【问题描述】:

我一直在使用 Django 消息框架在我的应用程序中显示成功或失败消息。但我希望 UI 很好,所以我发现 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 %}

【问题讨论】:

    标签: python django toastr


    【解决方案1】:

    感谢这个问题,我能够用 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 %}
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 不起作用。我没有看到任何toastr 消息。而只是我在message 变量中发送的纯错误文本
      • @sphoenix 检查您的浏览器控制台。我认为您会在控制台中看到一个错误,这有助于理解这一点
      • @sphoenix 提供的代码有错误,我已修复
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 2017-06-02
      • 1970-01-01
      相关资源
      最近更新 更多