私の問題に何の答えもせずに検索しています。私は良い方法で進めるかどうかわかりませんが、私はこのようなURLを持っています:article/title/0/search=ad/2017-08-01/2017-08-09/
;パラメータは(中かっこ):article/{filter}/{page}/search={search}/{date1}/{date2}/
です。Django url複数のパラメータ
マイurl.py正規表現は次のとおりです。
url(r'article/(?P<filter>.+)/(?P<page>\d+)/(?:search=(?P<search>.*)/)?(?:(?P<date1>(\d{4}-\d{1,2}-\d{1,2})?)/)(?:(?P<date2>(\d{4}-\d{1,2}-\d{1,2})?)/)?$')
値search
、date1
とdate2
が記入されている場合、私のURLが{searched word}/2017-08-01/2017-08-09/
がsearch
値だと思います。
search
,date1
およびdate2
が空の場合、私のリンクはarticle/title/0/search=///
のようになります。日付が記入されたときarticle/title/0/search=/2017-08-01/2017-08-09/
。私のテンプレートで
は、私はこのようなことに私のURLが必要です:{% url "view" filter page search date1 date2 %}
誰かが私を助けて、私は間違った方法でそれをやったなら、私を修正することはできますか?
EDIT
私は別の方法で私の問題を再度お願いしてみましょう:search, date1 and date2
を必要としない3つのフィールドを持つフォームを持っている中で、私のテンプレートで
ので、彼らはNoneにすることができます(これは私の問題です)。私は、ビューのパラメータfilter, page
の1つだけを変更し、URLにフィールドのパラメータを保持する必要のあるリンクをいくつか持っています。 フォームが私のビュー(実際にはdef AllArticle(request, filter, page, search="", date1="", date2="")
のようなものです)にPOSTされているとき、私はそれらを使ってArticleModelオブジェクトをフィルタリングします。
@Cory_Maddenによると、以前はこの方法を使用していませんでした。使用方法はわかりません。私はちょうどそれを試み、djangoは私にMultiValueDictKeyErrorを返します。
あなたのモデルは何か、フィルタリングや検索をしようとしているものはもっと具体的になりますか?あなたのモデルとフィルタ要件をより明確に投稿してください。 –
GETパラメータを '?'で区切ったものは、'urls.py 'で*表示されません。 URL自体のみ。 –