「商品」と「カテゴリー」を管理する「商品」というアプリがあります。そして、次のような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 が 2 つあります。
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 があります。