Django {% url "home" %} конфликт имен, почему? Не должно [закрыто]
В новом проекте django я столкнулся с конфликтом имен в урлах, когда в теории его быть не должно. Путь к двум урлам разный, но название одинаковое. Это легко исправить, изменив имя, но я хотел бы понять, почему возникает конфликт, когда, по моему мнению, его не должно быть.
Проблема в {% url 'home' %}
.
<a class="navbar-brand" href="{% url "home" %}">CRM</a>
urls.py из проекта:
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.home, name='home'), <---------'localhost:8000/'
path('CRMapp/', include('CRMapp.urls')),
]
urls.py из приложения:
urlpatterns = [
path('', views.home, name='home'), <---------'localhost:8000/CRMapp/'
path('hello/', views.hello, name='hello')
]
views.py из приложения: (в теории триггер, когда localhost:8000/CRMapp/
def home(request: HttpRequest):
return render(request,'home.html',{})
views.py из проекта deliver when localhost:8000/
:
def home(request: HttpRequest):
# return HttpResponse('home')
return render(request,'home.html',{})
html навигатора:
Оба {% url "home" %} выдают localhost:8000/CRMapp/
, тогда как должны выдавать localhost:8000/
<a class="navbar-brand" href="{% url "home" %}">CRM</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{% url "home" %}">Home</a>
вот список маршрутов, которые показывает django-extentions:
/ djangoCRM.views.home home
/CRMapp/ CRMapp.views.home home
/CRMapp/hello/ CRMapp.views.hello hello
/admin/ django.contrib.admin.sites.index admin:index
/admin/<app_label>/ django.contrib.admin.sites.app_index admin:app_list
/admin/<url> django.contrib.admin.sites.catch_all_view
...
...
Я пытаюсь понять, почему конфликт имен в {% url "home" %}
существует, когда его не должно быть.