У меня есть приложение под названием "продукты", которое управляет "продуктами" и "категориями". И у меня есть 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) products / 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, который будет управлять обоими объектами: продуктом и категорией