Дополнительные параметры в конфигурации URL и механизм include()

Опубликовал: Tuesday, January 31, 2024 в категории Django | Пока нет комментариев

Во включаемую конфигурацию URL можно передавать дополнительные параметры обычным образом - в виде словаря. Но при этом дополнительные параметры будут передаваться каждой строке включаемой конфигурации.

Например, следующие два набора конфигурации URL функционально эквивалентны.

Первый набор:

tt urls. ру

from django.conf.urls.defaults import *

urlpatterns = patternsC’,

(r’~blog/’, include(‘inner’), {‘blogid’: 3}),

)

tt inner, py

from django.conf.urls.defaults import *

urlpatterns = patternsC’,

(r’~archive/$’, ‘mysite.views.archive’), (r’~about/$’, ‘mysite.views.about’), (r’~rss/$\ ‘mysite.views, rss’),

)

Второй набор:

tt urls. py

from django.conf.urls.defaults import *

urlpatterns = patternsC’,

(r’~blog/\ include(‘ inner’)),

)

tt inner, py

from django.conf.urls.defaults import *

urlpatterns = patternsC’,

(r’~archive/$’, ‘mysite.views.archive’, {‘blogid’: 3}), (r’~about/$’, ‘mysite.views.about’, {‘blogid’: 3}), (r’~rss/$’, ‘mysite.views.rss’, {‘blogid’: 3}),

)

Как и сохраняемые параметры (см. предыдущий раздел), дополнительные параметры всегда передаются каждой строке включаемой конфигурации вне зависимости от того, допустимы ли они для указанной в этой строке функции представления. Поэтому описанная техника полезна лишь в том случае, когда вы уверены, что любое представление, упоминаемое во включаемой конфигурации, принимает дополнительные параметры, которые ей передаются.

Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *