两个具有相同结构的 URL
Two URLs with same structure
如何使两个具有相同结构的URL工作?
我不想在 URL 之前添加任何前缀。我希望所有视图都是 example.com/[slug]
.
这是我的 URLs:
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 Django 按顺序运行每个 URL 模式,并在第一个与请求的 URL 匹配的模式处停止。见 how-django-processes-a-request
你不能那样做你想做的事。相反,您可以添加另一个视图,您可以在其中根据如下条件发送请求:
def some_view(request):
if some_condition:
return CategoryArticlesView.as_view()(self.request)
else:
return SingleArticleView.as_view()(self.request)
现在,您的 url 配置可以是:
url(r'^(?P<slug>[-_\w]+)', views.some_view, name='some_name'),
如何使两个具有相同结构的URL工作?
我不想在 URL 之前添加任何前缀。我希望所有视图都是 example.com/[slug]
.
这是我的 URLs:
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 Django 按顺序运行每个 URL 模式,并在第一个与请求的 URL 匹配的模式处停止。见 how-django-processes-a-request
你不能那样做你想做的事。相反,您可以添加另一个视图,您可以在其中根据如下条件发送请求:
def some_view(request):
if some_condition:
return CategoryArticlesView.as_view()(self.request)
else:
return SingleArticleView.as_view()(self.request)
现在,您的 url 配置可以是:
url(r'^(?P<slug>[-_\w]+)', views.some_view, name='some_name'),