django 参数通过获取在形成直接 url 时不起作用
Posted
技术标签:
【中文标题】django 参数通过获取在形成直接 url 时不起作用【英文标题】:django parameter via get not working while forming direct url 【发布时间】:2019-01-14 09:10:32 【问题描述】:基本网址:
path('api/product/',
include(('store.urls', 'store'),
namespace='api-product')),
商店网址:
path('invoice-pdf-get/',
invoice.InvoiceToPdf.as_view(),
name='invoice-pdf-get'),
HTML:
<html>
<body>
<form method="get" action="% url 'api-product:invoice-pdf-get' %?R= invoice.invoice_unique_number ">
<input type="submit" value="Generate PDF">
</form>
</body>
</html>
当我点击按钮时,我在浏览器中得到的网址为:
http://localhost:8000/api/product/invoice-pdf-get/?
预期的地方:
http://localhost:8000/api/product/invoice-pdf-get/?invoice_number=SOMEKEY
虽然如果我通过表单提交隐藏类型输入,我会得到预期的结果但我正在阅读:Daniel Roseman SO answer。通过GET
传递参数。
虽然检查显示 URL(见图)但为什么我没有得到预期的结果?
【问题讨论】:
【参考方案1】:当通过 GET 提交表单时,表单中的值将作为查询字符串发送。这覆盖action
URL 中的任何查询字符串。例如,请参阅this SO answer。
您应该将您的值作为隐藏输入放在表单本身中。
<form method="get" action="% url 'api-product:invoice-pdf-get' %">
<input type="hidden" name="R" value=" invoice.invoice_unique_number ">
<input type="submit" value="Generate PDF">
</form>
【讨论】:
谢谢你澄清事情先生!以上是关于django 参数通过获取在形成直接 url 时不起作用的主要内容,如果未能解决你的问题,请参考以下文章