Django消息框架在XHR POST请求中不起作用

时间:2018-06-28 08:14:38

标签: html django xmlhttprequest messages

在我的网页中,有一个选项可以以通过XHR请求发送数据的形式包含URL。在我的服务器中,我检查所写的URL是否正确,如果不正确,则会生成一条错误消息,该消息将通过Materialize吐司显示。事实是,我之前已经完成了该机制,并且可以完美地工作,现在我复制了代码,并且在django会话中不存储任何消息。我的代码:

@login_required
def analyze(request):
    if request.method == 'POST':
        ...
        if:
            ...
        else:
            print "hello there"
            messages.error(request, 'The URL introduced is not valid.')
            return render(request, "analyze.html")

执行else块,因为我在终端中看到“ hello there”消息,但看起来该消息未存储...

模板

{% block javascript %}

{% if messages %}
  {% for message in messages %}
    {% if message.tags == 'error' %}
    <script>
      M.toast({html: '{{ message }}', classes: 'rounded red'})
    </script>
    {% endif %}
  {% endfor %}
{% endif %}
...
{% endblock %}

问题是,如果我将message.error(...)放在if request.method == 'POST'之前,那么每次刷新页面时它都可以正常工作。

可能是因为XHR POST请求?如果是的话,我该如何运作?

谢谢!

编辑 我可以确认Django的message Framework不能用于xhr请求,因为我更改了表单并使用了经典的提交方式,并且可以正常工作,但是我仍然需要XHR请求才能获得网站的其他功能。有人知道如何解决这个问题吗?

0 个答案:

没有答案