如何将警报或消息从view.py发送到模板?

时间:2019-08-17 12:54:38

标签: python django django-templates

我正在将.xls文件从前端模板上传到Django。在views.py中,我正在验证.xls文件的字段,如果一切正常,我将保存该文件。

如果有问题,我希望发送消息或警报,并通过警告消息将错误消息指定给模板。

我希望在文件上传字段下方显示错误消息,但是任何js警报或其他方式也可以。请帮忙。谢谢

额外:如果可能的话,我想更改模板中的span元素。可以从views.py做到吗?

(我正在使用AJAX请求上传文件。) 我尝试使用消息,但没有任何反应。

在views.py中:

if request.method == 'POST' and request.FILES:
.
--code to verify and save the file or generate error msg--
.
if error != 'false':
        messages.info(request, 'The file you uploaded has the following problem: '+error+'. Please fix it and upload the file again')

在模板中:

{% block content %}
  --lot of html--
  .
  --file upload field-- 
  .
  {% if messages %}
    <ul class="messages">
    {% for message in messages %}
      <li>{{ message }}</li>
    {% endfor %}
    </ul>
  {% endif %}
  .
  --lot of html--
{% endblock %}

1 个答案:

答案 0 :(得分:0)

我知道了,是这样的:

views.py:

<div id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link" href="{% url 'index' %}">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="{% url 'about' %}">About</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="{% url 'contact' %}">Contact</a>
        </li>
      </ul>
    </div>

我在用来发送文件的ajax请求中捕获了响应:

if request.method == 'POST' and request.FILES:
.
--code to verify and save the file or generate error msg--
.
if error != 'false':
    return JsonResponse({'msg': error)