2011-06-28 40 views
1

私はこのリストをdjangoに持っています。これらは同じように見えます。あなたはパイプ記号によって設計されたORの文字を使用して、正規表現であなたの条件を組み合わせることができ、これらの4つのラインDjangoのURL書き換え設定の数を減らす方法

(r'^book/list/$', list_detail.object_list, book_info), 
(r'^author/list/$', list_detail.object_list, author_info), 
(r'^publisher/list/$', list_detail.object_list, publisher_info), 
(r'^shop/list/$', list_detail.object_list, shop_info), 

答えて

0

から1ラインを作るための方法はあります。 (r '^(書籍|作者|出版社|店舗)/ list/$'、list_detail.object_list、shop_info)、

ワイルドカード文字を使用しないと仮定しています。

+0

何を持っていることはいえ最高だと思いますが、私は同様にshop_info、book_infoを差分機能を持っている彼らはモデル –

4

あなたのサイトのURLがはっきりとわかるように(そして各リストには{%url%}で使用する名前を付けることができますが、おそらくあなたは次のようにすることができます):

(r'^(?P<model>\w+)/list/$', list_detail.object_list) 

は次にviews.pyに:。

def object_list(request, model): 
    if model == 'books': 
     return books_list(request) 

def books_list(request): 
    # whatever 

私は

+0

+1されている場合。君は エントリーの数が少なくて済むようにするには、パターンの数を少なくする必要があります。 –

関連する問題