django没有工作警觉

时间:2018-03-02 07:47:07

标签: javascript django

django 2.0.2 mac os 10.13 python 3.6.4

我希望对模板使用警报

django settings.py

MESSAGE_TAGS = {
messages.DEBUG: 'alert-info',
messages.INFO: 'alert-info',
messages.SUCCESS: 'alert-success',
messages.WARNING: 'alert-warning',
messages.ERROR: 'alert-danger',
}

views.py
def list(request)
    messages.error(request,'invalid user', extra_tags='alert')
    return redirect('/')

templates.html

我试过两种方式

template1.html

 {% if messages %}
  <script>
  {% for message in messages %}
  alert({{message}})
  {% endfor %}
  </script>
  {% endif %}

template2.html

<div class="content container">
  {% if messages %}
  {% for message in messages %}
  <div class="alert {{ message.tags }} alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
      <span aria-hidden="true">&times;</span>
    </button>
    {{ message }}
  </div>
  {% endfor %}
  {% endif %}
    <div class="row">
        <div class="col-md-8">

template2.html结果如下:

enter image description here

<div class="alert alert alert-danger alert-dismissible" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
          <span aria-hidden="true">×</span>
        </button>
        invalid user
      </div>

此图片的HTML代码 这个HTML有效吗?

我不能在django中使用警报..

1 个答案:

答案 0 :(得分:0)

模板代码看起来有效。您的问题可能是您的视图功能中没有成功添加任何消息。

文档中解释了消息的用法。 https://docs.djangoproject.com/en/2.0/ref/contrib/messages/#using-messages-in-views-and-templates

messages.ERROR不是函数,它只是常量数字代码50 要添加错误消息,请使用函数messages.error()

views.py

from django.contrib import messages

def list(request):
    messages.error(request,'invalid user', extra_tags='alert')
    return redirect('/')

您的list视图应该导致异常。它的语法无效(在def语句中缺少:)以及数字messages.ERROR不可调用。