2

ステータス トークンをオプションにしたい URL があります。URL にステータス トークンが指定されていない場合は、view メソッドの引数にデフォルト値を指定します。トークンをこれに置き換えてみました(?:/(?P<status>\d+))?$が、うまくいかないようです。ありがとう

url(r'^(?P<status>\d+)/$', frequest_list, name="frequest_list"),

def request_list(request, status=1):
 ...
 ...

更新:これは私が試していたパターンでした:

url(r'^(?:/(?P<status>\d+))?$', frequest_list, name="frequest_list"),

だから、私が試してみればlocalhost/features/うまくいく

でもやっlocalhost/features/1/たら失敗する

4

2 に答える 2

3

同じビューを呼び出す 2 つ目の URL エントリを作成するだけです。

url(r'^features/$', frequest_list, name="frequest_list_default"),
url(r'^features/(?P<status>\d+)/$', frequest_list, name="frequest_list"),
于 2012-12-12T00:08:54.587 に答える
1

一部のプロジェクトで単一の URL オプション キャプチャを使用していますが、正常に動作します。パターンを調整して、末尾を/オプションにすることができます。それがあなたのURLが一致しない原因だと思います。Django には "APPEND_SLASH" 設定 bool があり、URL が欠落していて一致しない場合に URL に追加されます。

url(r'^features(?:/(?P<status>\d+))?/?$', frequest_list, name="frequest_list")

オプション/は、おそらく次のように書くこともできます。

url(r'^features/?(?:(?P<status>\d+)/?)?$', frequest_list, name="frequest_list")
于 2012-12-12T00:45:47.073 に答える