Django:使用HTTP GET的干净URL

时间:2015-12-15 18:14:51

标签: python django http-get

我在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。

1 个答案:

答案 0 :(得分:2)

您刚才描述的网址是GET方法传递参数的方式。您可以肯定使用基本网址,但更改表单以使用POST方法。 POST参数不会通过网址传递,因此很可能是您需要的。有关详细信息,请查看django docs