Django - ссылки на url из разных приложений перенаправляют на одни и те же ссылки

У меня есть три приложения в проекте, которые имеют разные шаблоны с разными URL, но если я перехожу на страницу шаблона какого-то приложения, то ссылки на этой странице показывают URL другого приложения, в то время как у меня есть разные приложения с разными URL именами

Когда я изменил название файлов шаблонов каждого приложения, все работает нормально.

Пожалуйста, подскажите решение, в чем проблема получить файл с тем же именем в другом приложении. Спасибо

Admin App

urlpatterns = [
    path('login', views.login, name='admin_login'),
    path('register', views.register, name='admin_register'),
    path('logout', views.logout, name='admin_logout'),
    path('dashboard', views.dashboard, name='admin_dashboard')
]
templates
----pages
------login.html
------register.html

Приложение для клиентов

urlpatterns = [
    path('login', views.login, name='customer_login'),
    path('register', views.register, name='customer_register'),
    path('logout', views.logout, name='customer_logout'),
    path('dashboard', views.dashboard, name='customer_dashboard')
]
templates
----pages
------login.html
------register.html

Когда я перешел на

templates
----pages
------customer_login.html
------customer_register.html

Затем работает, но я не могу найти проблему, почему выдает этот тип ошибки, в то время как у меня есть другое приложение с разными vies, шаблонами, URL и именем пути, куда я перенаправляю.

Заранее спасибо

Это связано с порядком, в котором Django сканирует шаблоны url, чтобы найти совпадение и вызвать соответствующее представление.

Если вы действительно хотите сохранить этот дизайн, вам придется сделать это следующим образом:

adminapp/templates
             -----adminapp
                --------pages
                   ---------login.html
etc.

поэтому внутри вашего шаблонного каталога каждого приложения добавьте еще один уровень каталога, названный по имени приложения. Так вы обеспечите, что Django выберет правильный шаблон.

Вернуться на верх