Javascript 为什么不是';t网站收到POST请求?

Javascript 为什么不是';t网站收到POST请求?,javascript,python,html,django,Javascript,Python,Html,Django,我一直在尝试创建“重新加载”按钮,一旦单击该按钮,并提交javascript表单支持: <div style="float: left;width:100%;height: 8%;background-color: #333333;min-height: 60px;"> <form id="rel_inv" name="reload_inventory" action="/account/" method="post"> {% csrf_token %}

我一直在尝试创建“重新加载”按钮,一旦单击该按钮,并提交javascript表单支持:

<div style="float: left;width:100%;height: 8%;background-color: #333333;min-height: 60px;">
    <form id="rel_inv" name="reload_inventory" action="/account/" method="post">
    {% csrf_token %}
    <input type="submit" name="reloadinv" value="inventory_reload" style="display: none;"></input>
    <div onclick="javascript:document.getElementById('rel_inv').submit();" name="reload_inv" style="width: 60px;height: 60px;cursor: pointer;text-decoration:none;display: block;"><img src="/static/Home/images/reload_i.png" style="width: 30px;height: 30px;margin-top: 25%;margin-left: 25%;"></div>
</div>
reload_库存变量通过上下文发送到模板。为了检查发送POST请求后变量是否被更改,我在
-

alert("{{ reload_inventory }}")
脚本总是警告“false”,并且在提交表单时从不发布request.method


最终目标是使用
{{reload\u inventory}}
变量来获取用户是否请求重新加载库存。如果
{{reload\u inventory}}
“true”
,将调用inventory函数,用户的库存将自动打开

更简单地说,一旦用户单击“重新加载”按钮,页面将重新加载新变量
reload\u inventory
。如果
reload\u inventory
为“true”,则将通过javascript打开inventory菜单,否则,反之亦然



那么问题出在哪里呢?即使提交表单,request.method也不等于POST,这背后有什么原因吗?有没有更好的办法?我的代码有问题吗?提前感谢。

问题在于这一行:

if request.POST.get("reload_inv"):
POST
字典不包含这样的值。您可以在
打印(“已收到请求”)
之后放置
打印(request.POST)
,然后将其签出

相反,所有的
POST
键值对都用表单数据(而不是javasccript数据)填充。
reload\u inv
变量是
div
)的名称,实际上它不是有效的HTML

为了工作,将if request.POST.get(“reload_inv”):更改为:

if request.POST.get("reloadinv"):
这是您的
输入的名称(

[编辑]:此外,当您使用另一个元素(
div
)提交表单时,没有必要使用
。相反,将此输入更改为:

<input type="submit" name="reloadinv" value="inventory_reload" style="display: none;"></input>

致:



我在本地进行了测试,效果很好。

问题在于这一行:

if request.POST.get("reload_inv"):
POST
字典不包含这样的值。您可以在
打印(“已收到请求”)
之后放置
打印(request.POST)
,然后将其签出

相反,所有的
POST
键值对都用表单数据(而不是javasccript数据)填充。
reload\u inv
变量是
div
)的名称,实际上它不是有效的HTML

为了工作,将if request.POST.get(“reload_inv”):
更改为:

if request.POST.get("reloadinv"):
这是您的
输入的名称(

[编辑]:此外,当您使用另一个元素(
div
)提交表单时,没有必要使用
。相反,将此输入更改为:

<input type="submit" name="reloadinv" value="inventory_reload" style="display: none;"></input>

致:



我在本地进行了测试,效果非常好。

该div中的代码看起来非常古怪。此外,它应该在JavaScript文件中,以便可以正确编辑和使用。@AluanHaddad即使没有div,提交输入本身也会给出相同的结果。该div中的代码看起来非常古怪。此外,它应该位于JavaScript文件中,以便可以正确编辑和使用。@AluanHaddad即使没有div,提交输入本身也会给出相同的结果。非常感谢您的回答。我试过了,但仍然没有收到任何请求。由于某些原因,request.method不等于“POST”。这可能是某种错误吗?更新了我的答案。请求背后的原因不是
POST
是另一个问题。我在本地复制粘贴了您的代码,效果非常好(在我的回答中出现了两个更改:
if request.POST.get(“reloadinv”):
),非常感谢<代码>
由于某些原因,似乎可以完美地工作。非常感谢您的回答。我试过了,但仍然没有收到任何请求。由于某些原因,request.method不等于“POST”。这可能是某种错误吗?更新了我的答案。请求背后的原因不是
POST
是另一个问题。我在本地复制粘贴了您的代码,效果非常好(在我的回答中出现了两个更改:
if request.POST.get(“reloadinv”):
),非常感谢<代码>由于某些原因似乎工作得很好。