1

私はこのリストをdjangoに持っています。これらは同一に見えます。この4本の線から1本の線を作る方法はありますか

(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),
4

2 に答える 2

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

私はあなたが持っているものが最善だと思います。

于 2011-06-28T19:14:51.363 に答える
0

パイプ記号で設計されたOR文字を使用して、正規表現で用語を組み合わせることができます。このようなもの:(r'^(本|著者|出版社|ショップ)/ list / $'、list_detail.object_list、shop_info)、

ワイルドカード文字は使いたくないと思います。

于 2011-06-28T18:50:12.957 に答える