我在django中有这个列表。这看起来很相似。有没有办法从这四行中划出一行
(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 :(得分:4)
我更愿意保留它,因此您可以清楚地看到您网站的网址(并且每个列表都可以使用{%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
我认为你拥有的是最好的。
答案 1 :(得分:0)
您可以使用由管道符号设计的OR字符在正则表达式中组合您的术语。像这样的东西: (r'^(book | author | publisher | shop)/ list / $',list_detail.object_list,shop_info),
我假设您不想使用通配符。