我在django中有一个表单,看起来像这样(在渲染之后):
<form action="/app/detail/" method="get">
<p><label for="id_detail">Choose which items to view:</label>
<select multiple="multiple" id="id_items" name="items">
<option value="23">Item 23</option>
<option value="18">Item 18</option>
<option value="22">Item 22</option>
</select></p>
<input type="submit" value="View" />
</form>
关联的网址conf(app
)包含以下模式:
url(r'^detail/$', views.detail, name='detail')
访问详细视图的URL最终会看起来像这样(取决于在多选框中选择了哪些选项:
http://hostname/app/detail/?items=23&items=18&items=22
在views.py
中,我可以使用request.GET.getlist('items')
来获取所选的任何项目。有没有办法完成所有这些,以便URL在URL中显示为清晰而没有?param=value&
? Django's URL dispatcher documentation讨论了外观清晰的URL,但这些示例主要是分层的URL。
答案 0 :(得分:2)
您刚才描述的网址是GET
方法传递参数的方式。您可以肯定使用基本网址,但更改表单以使用POST
方法。 POST
参数不会通过网址传递,因此很可能是您需要的。有关详细信息,请查看django docs。