我有一个名为“产品”的应用程序,用于管理“产品”和“类别”。我有 products/views.py (带有通用视图),如下所示:
Objects = {
'products': {'model':Product, 'form':ProductForm}
'categories': {'model':Category, 'form':CategoryForm}
}
和这样的:
def list(request, obj):
model = Objects[obj]['model']
queryset = model.objects.all()
return object_list(request, queryset=queryset)
然后我的项目 urls.py 是这样的:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^products/', include('products.product_urls.py'), {obj:'product'}),
(r'^categories/', include('products.category_urls.py'), {obj:'category'}),
)
然后我有两个 urls.py 用于类别和产品,如下所示:
1) 产品/product_urls.py
urlpatterns = patterns('',
url(r'^$', 'products.views', name='products-list'),
)
2)和 products/category_urls.py 中非常相似的一行
urlpatterns = patterns('',
url(r'^$', 'products.views', name='categories-list'),
)
如您所见, products/product_urls.py 和 products/category_urls.py 非常相似,除了 url 名称。
我的问题是:是否有一种智能技术可以将 products/product_urls.py 和 products/category_urls.py “合并”到一个模块中,并且根据他们正在处理的“对象”,它们仍然有不同的 url 名称。即有一个 products/urls.py 将管理两个对象:产品和类别