Django 中的正则表达式 URL

Regex URL in django

也许这个问题是重复的,但我找不到适合我的具体问题的答案。我有两个 URL:

url(r'^dashboard/completar-perfil/(?P<pk>[-_\w]+)/$', CompleteProfileView.as_view()),       

url(r'^dashboard/.*$', DashboardView.as_view()),

如您所见,两者都以 dashboard 开头。问题是第一个不呈现 CompleteProfileView,总是呈现 DashboardView,如果我从第一个 URL 中删除 dashboard/,它确实工作正常,我如何实现两个 url 呈现各自的视图?

问题在于 ^dashboard/.*$ 是一个贪婪的正则表达式,它将匹配所有以 dashbord/ 开头的内容,包括 dashboard/completar-perfil/.

因此,您可能需要更好地指定第二个正则表达式。你真的需要 .* 吗?

如果它是您仪表板的索引,您可以使用 ^dashboard/$。否则,您可以在仪表板和贪婪的正则表达式之间添加另一个词,如下所示:

r"^dashboard/another-word/.*$"