0

Django URL ディスパッチャで次の形式の URL を照合したいと考えています。

 /(?P<location>\w+)-holidays/in-(?P<month>\w+)/to-(?P<top_price>\d+)

ややこしいのは、パスの 3 つの個別の要素のいずれかをオプションにしたいということです。したがって、次のすべてに一致させたいと思います。

 /venice-holidays
 /venice-holidays/in-june/
 /venice-holidays/in-june/to-1000
 /venice-holidays/to-1000
 /in-june
 /in-june/to-1000
 /to-1000

Django URL パターンでこれを行うことはできますか? これが重複している場合は申し訳ありません。検索を行いましたが、この質問を正確に見つけることができませんでした。

更新: URL でパターンを提供するのではなく、ビュー内でlocationand etc が有効であることを確認する予定です。month

4

1 に答える 1

1

私は同様のことをしましたが、次のように解決しました:

url.py:

url(r'^(?P<location>[\w]+)/(?P<month>[\w]*)/?(?P<something>[\w]*)/?', ...),

ビュー.py:

def course_list(request, location, month = None, something = None):

    if month:
        # do stuff

URLの最初の項目として「ベースパスワード」が必要です。

これを行う場合:

url(r^(?P<location>[\w]*) ... ),

それはほとんどすべてのURLに一致します

于 2013-01-15T11:28:39.277 に答える