Я бы посоветовал использовать один шаблон URL для обоих, но передать каждому из них уникальные параметры. Это достигается с помощью функции django.con.urls.defaults.include
. В этом случае первое включение устанавливает kwarg current_app
на freshman
, а второе на sophomore
.
from django.conf.urls.defaults import *
site_patterns = patterns('',
# put your urls here...
)
urlpatterns = patterns('',
url(r'^freshman/',
include(site_patterns, namespace='freshman', app_name='freshman'), {
'current_app': 'freshman',
}),
url(r'^sophomore',
include(site_patterns, namespace='sophomore', app_name='sophomore'), {
'current_app': 'sophomore',
}),
)
Затем, как обычно, вы можете вытолкнуть kwarg в своем представлении и вызвать уникальное поведение из этого значения:
def my_view(request, *args, **kwargs):
current_app = kwargs.pop('current_app')
Кроме того, вы можете создать декоратор для автоматизации этого и любого другого стандартного шаблона, который необходимо выполнить для представлений, следующих за этим форматом.