在我的网页中,有一个选项可以以通过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请求才能获得网站的其他功能。有人知道如何解决这个问题吗?