Вы можете включать одни и те же шаблоны URL более одного раза. В вашем случае вы можете включать их с префиксом сетевого имени и без него
from django.urls import path, include
episode_patterns = [
path('<str:tv_show_name>/<str:episode_name>/', episode_detail),
path('<str:tv_show_name>/<str:episode_name>/cast/', episode_cast),
path('<str:tv_show_name>/<str:episode_name>/reviews/', episode_reviews),
]
urlpatterns = [
path('<str:network_name>/', include(episode_patterns)),
path('', include(episode_patterns)),
]
Возможно, вы захотите подумать о включении «префиксов» в свои пути, чтобы они были более явными. В существующем виде это может быть довольно запутанным относительно того, какой URL-адрес соответствует
from django.urls import path, include
episode_patterns = [
path('show/<str:tv_show_name>/episode/<str:episode_name>/', episode_detail),
path('show/<str:tv_show_name>/episode/<str:episode_name>/cast/', episode_cast),
path('show/<str:tv_show_name>/episode/<str:episode_name>/reviews/', episode_reviews),
]
urlpatterns = [
path('network/<str:network_name>/', include(episode_patterns)),
path('', include(episode_patterns)),
]
Это даст вам URL-адреса, такие как
- mysite.com / show / tv-show-name / эпизод / имя-эпизода /
- mysite.com / сеть / имя-сети / шоу / имя-ТВ-шоу / эпизод / имя-эпизода /