2013-05-09 2 views
2

я должен иметь какое-то неправильное представление о том, как GET переменные можно манипулировать в Джанго, но здесь идет:Джанго Clean URLS и данных формы

(1) У меня есть форма поиска, которая имеет два обязательных параметра и один необязательные параметры.

форма отправляет/поиск/например, так:

<form action="/search/" method="GET"> 

Однако URLs, которые являются результатом этого взгляда что-то вроде

http://mylifeforregex:8000/search/?keyword=keyword&columns=name&exact=on 

Я не в состоянии соответствовать его в моих urlpatterns со следующей строкой:

url(r'^search/(?P<keyword>\w+)(?P<columns>\w+)(?P<exact>\w+)?$', 'home', name='searched') 

Так что если кто-то может сказать мне, что именно я делаю неправильно с этим r egex, было бы очень благодарно.

(2) Более интересный вопрос, который у меня есть лично: есть ли способ изменить способ представления данных формы? Можно ли иметь результат форму запроса в URL, который выглядит как

http://halp:8000/search/keywordquery/columnquery/optionmarked 

ответ

1

В этом случае ни один из параметров строки запроса, которые добавляются к URL будет соответствовать вашей модели, потому что картина не просто не то же самое ,

Вы должны выбрать те, в вашей «домашней» точки зрения, как, например:

[variable] = request.GET.get([key]) 

Чтобы получить образец URL-адрес, вы ожидаете, вы должны сделать POST с вашей точки зрения, что ручки форму для получения значений, а затем перенаправить на «/ search/[keyword]/[column]/[exact]/'

+0

Перенаправление после запроса означает 2 круглых поездки. – g33kz0r

+0

Да, но конечный пользователь не увидит представление, обрабатывающее повторный рендер. Они видят только точку назначения. – Brandon

+0

Они могут «видеть» это, если у них есть firebug, или если ваш сервер имеет латентность ... – g33kz0r