API для магистрали будет доступен для других веб-сайтов или устройств

Вы можете использовать вложенные маршруты

Django & lt; 1.8

urlpatterns = patterns(''
    url(r'^project_config/', include(patterns('',
        url(r'^$', ProjectConfigView.as_view(), name="project_config")
        url(r'^(?P<product>\w+)$', include(patterns('',
            url(r'^$', ProductView.as_view(), name="product"),
            url(r'^(?P<project_id>\w+)$', ProjectDetailView.as_view(), name="project_detail")
        ))),
    ))),
)

Django> = 1.8

urlpatterns = [
    url(r'^project_config/', include([
        url(r'^$', ProjectConfigView.as_view(), name="project_config")
        url(r'^(?P<product>\w+)$', include([
            url(r'^$', ProductView.as_view(), name="product"),
            url(r'^(?P<project_id>\w+)$', ProjectDetailView.as_view(), name="project_detail")
        ])),
    ])),
]

Это намного больше DRY (скажем, вы хотели переименовать product kwarg в product_id, вам нужно изменить строку 4, и это повлияет на приведенные ниже URL.

Отредактировано для Django 1.8 и выше

0
задан LASH 26 February 2015 в 04:38
поделиться