我遇到的问题是:
url(r'^books/(.*?)/$', views.list_books),
url(r'^books/(.*?)/availability/$', views.book_availability),
我总是使用(.*?)
来匹配任何内容,但在这种情况下,它不起作用,因为它与第一个模式匹配,无论如何。基本上我希望这个有效:books/A56/availability
,但A56/availability
匹配books/(.*?)/$
而不是books/(.*?)/availability/$
,就像它应该的那样。
我怎么配这个?我想我想要的是"匹配任何东西,直到前进的冲刺"或类似的东西。
答案 0 :(得分:1)
正如documentation中提到的那样:
Django按顺序遍历每个URL模式,并在第一个匹配请求的URL的位置停止。
所以你应该把第二个模式放在第一个模式或name your url
patterns
urlpatterns = [
url(r'^books/(.*?)/availability/$', views.book_availability),
url(r'^books/(.*?)/$', views.list_books),
]