Хотя в документации говорится, что «Django проходит по каждому шаблону URL по порядку и останавливается на первом шаблоне, который соответствует запрошенному URL», все примеры выглядят следующим образом:
from django.urls import path
from . import views
urlpatterns = [
path('articles/2003/', views.special_case_2003),
path('articles/<int:year>/', views.year_archive),
path('articles/<int:year>/<int:month>/', views.month_archive),
path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
]
с более широкими шаблонами URL в конце. И все, кажется, работает правильно.
Более того, некоторые статьи в Stackoverflow предполагают, что это может быть ошибкой ( Каков порядок оценки регулярных выражений urls.py в django? ).
Каков реальный порядок оценки шаблонов URL и почему?