Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何构造Django模板标记条件语句来检查POST的请求方法?_Django_Django Templates - Fatal编程技术网

如何构造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 %}