Django:在url中匹配除了正斜杠之外的任何东西?

时间:2016-04-09 08:41:13

标签: python django

我遇到的问题是:

url(r'^books/(.*?)/$', views.list_books),
url(r'^books/(.*?)/availability/$', views.book_availability),

我总是使用(.*?)来匹配任何内容,但在这种情况下,它不起作用,因为它与第一个模式匹配,无论如何。基本上我希望这个有效:books/A56/availability,但A56/availability匹配books/(.*?)/$而不是books/(.*?)/availability/$,就像它应该的那样。

我怎么配这个?我想我想要的是"匹配任何东西,直到前进的冲刺"或类似的东西。

1 个答案:

答案 0 :(得分:1)

正如documentation中提到的那样:

  

Django按顺序遍历每个URL模式,并在第一个匹配请求的URL的位置停止。

所以你应该把第二个模式放在第一个模式或name your url patterns

之前
urlpatterns = [
    url(r'^books/(.*?)/availability/$', views.book_availability),
    url(r'^books/(.*?)/$', views.list_books),
]