2015-12-15 1 views
0

У меня есть форма в Джанго, который выглядит примерно так (после того, как оно было вынесено):Джанго: использовать чистые URL-адреса с HTTP GET

<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> 

ассоциированная URL-адрес конф (в 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-адрес стал более чистым без ?param=value& в URL-адресе? Django's URL dispatcher documentation обсуждает чистые URL-адреса, но эти примеры в основном представляют собой URL-адреса, которые являются иерархическими по своей природе.

ответ

2

Адрес, который вы только что описали, - это параметры, которые передаются методом GET. Вы можете наверняка использовать базовый url, но вместо этого измените форму, чтобы использовать метод POST. POST параметры не передаются по URL-адресу, поэтому, скорее всего, вам нужно. Посмотрите на django docs для деталей.

 Смежные вопросы

  • Нет связанных вопросов^_^