如何使两个具有相同结构的 URL 起作用?
我不想在 URL 之前添加任何前缀。我希望所有 View 均为 example.com/[slug]
。
这是我的网址:
url(r'^(?P<slug>[-_\w]+)', views.CategoryArticlesView.as_view(), name='single_category'),
url(r'^(?P<slug>[-_\w]+)', views.SingleArticleView.as_view(), name='single_article'),
我可以通过在第一个 URL 之前添加前缀来轻松使其工作,例如:
url(r'^**category/**(?P<slug>[-_\w]+)', views.CategoryArticlesView.as_view(), name='single_category'),
但我想要它没有前缀。 现在它只匹配第一个 URL,而不匹配第二个 URL。
最佳答案
你不能那样做你想做的事。相反,您可以添加另一个 View ,您可以在其中根据某些条件分派(dispatch)请求,如下所示:
def some_view(request):
if some_condition:
return CategoryArticlesView.as_view()(self.request)
else:
return SingleArticleView.as_view()(self.request)
现在,您的网址配置可以是:
url(r'^(?P<slug>[-_\w]+)', views.some_view, name='some_name'),
关于python - 两个具有相同结构的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068303/