如何构造Django模板标记条件语句来检查POST的请求方法?
首先,我想做的是:如何构造Django模板标记条件语句来检查POST的请求方法?,django,django-templates,Django,Django Templates,首先,我想做的是: {% if method == POST %} {% include "app/template_x.html"%} {% else %} {% include "app/template_y.html"%} {% endif %} 我使用的是基于类的视图,继承自django.views.generic.edit.UpdateView 我尝试了一些方法,其中包括通过url.py asview()函数中的额外上下文传递HttpRespons.method对象。
{% if method == POST %}
{% include "app/template_x.html"%}
{% else %}
{% include "app/template_y.html"%}
{% endif %}
我使用的是基于类的视图,继承自django.views.generic.edit.UpdateView
我尝试了一些方法,其中包括通过url.py asview()函数中的额外上下文传递HttpRespons.method对象。
有人知道我应该如何处理这个问题吗
编辑:使用request.method在模板呈现时始终返回“GET”。我希望用户能够提交一个表单,并让模板在确认成功后在同一页面上呈现不同的{%include“template”%} 我尝试了这个,request.method每次都返回“GET”。我认为这是模板呈现顺序的一部分。当我提交表单条目时,页面重新加载,request.method打印“GET”{{request.method}。在我提交表单并将数据发送到数据库后,我希望“GET”是“POST”。因为你这样做是
views.py
而不是模板,POST
请求只在表单中完成,访问网页被视为GET
,你现在就解决了X-Y问题,告诉我们你想做什么我想通过django{{form}发送数据,并使用不同的{%include“template”%}重新加载页面。因此,如果我理解正确,相同的url会呈现不同的模板。我有两个版本的引导Navwindow,在用户成功提交数据后,我希望加载/呈现Navwindow x而不是Navwindow y。我想这样做,而不需要创建一个新的模板文件,但我愿意考虑它的其他选项
{% if request.method == "POST" %}
{% include "app/template_x.html"%}
{% else %}
{% include "app/template_y.html"%}
{% endif %}