Django url模式-如何使slug url适用于多个视图

Django url模式-如何使slug url适用于多个视图,django,Django,我在一些网站上看到一个url模式,它为不同的对象(如类别和产品)显示相同的模式 例如,当您转到tablet cases和sony camera时,您会看到相同的模式,如www.website/tablet cases和www.website/sony camera。 在Django中如何做到这一点而不产生如下错误 Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/tablet-cases/

我在一些网站上看到一个url模式,它为不同的对象(如类别和产品)显示相同的模式

例如,当您转到tablet cases和sony camera时,您会看到相同的模式,如
www.website/tablet cases
www.website/sony camera
。 在Django中如何做到这一点而不产生如下错误

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/tablet-cases/
Raised by:  Product.views.category_detail_view
我的意思是,我如何在以下类别和产品中使用相同的模式:

url(r'^(?P<slug>[\w-]+)/$', ProductDetailView.as_view(), name='product_detail'),
url(r'^(?P<slug>[\w-]+)/$', CategoryDetailView.as_view(), name='category_detail'),
url(r'^(?P[\w-]+)/$”,ProductDetailView.as_view(),name='product_detail'),
url(r'^(?P[\w-]+)/$”,categorydeailview.as_view(),name='category_detail'),

Django匹配第一个正则表达式,在本例中为
产品详细信息
视图。默认情况下,Django没有办法依次尝试每个url,因此不会使用当前url调用category视图

最简单的修复方法是为URL命名名称空间。这可能是一个好主意——目前,如果你有一个类别和一个产品使用相同的slug,你就会遇到问题

url(r'^products/(?P<slug>[\w-]+)/$', ProductDetailView.as_view(), name='product_detail'),
url(r'^categories/(?P<slug>[\w-]+)/$', CategoryDetailView.as_view(), name='category_detail'),

最后,有一个项目,似乎做你想做的。我从未使用过它,因此我不能对此做出任何声明。

我不确定这个问题:为什么不添加一个额外的名称空间以避免可能的冲突(和问题)?比如:
/product/your slug
/category/category slug
。另外:这是什么字符
?非常感谢!现在看来django的多个url很有效。我会继续努力的。
url(r'^(?P<slug>[\w-]+)/$', product_or_category, name='product_or_category'),