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/.*$"
也许这个问题是重复的,但我找不到适合我的具体问题的答案。我有两个 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/.*$"