2

DjangoでGET変数を操作する方法について、ある種の誤解があるに違いありませんが、次のようになります。

(1) 2 つの必須パラメータと 1 つのオプション パラメータを持つ検索フォームがあります。

フォームは次のように /search/ に送信します:

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

ただし、この結果の URL は次のようになります。

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

したがって、誰かが私がこの正規表現で間違っていることを正確に教えてくれれば、それは大歓迎です。

(2) 私が個人的に持っているより興味深い質問は、フォーム データの表示方法を変更する方法はありますか? フォームクエリの結果を次のような URL にすることは可能ですか?

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

1 に答える 1

1

この場合、URL に追加されたクエリ文字列パラメーターのいずれもパターンと一致しません。これは、パターンが単に同じではないためです。

「ホーム」ビューでそれらを次のように選択する必要があります。

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

期待する URL パターンを取得するには、フォームを処理するビューに POST を実行して値を取得し、'/search/[keyword]/[column]/[exact]/ にリダイレクトする必要があります。 '

于 2013-05-09T00:13:47.777 に答える