Как реализовать пространства имен Django

Я начал свое путешествие с Django и мне это очень нравится. У меня есть вопрос о пространствах имен, и я надеюсь, что кто-нибудь сможет мне помочь и объяснить, почему это работает именно так.

Как я понимаю, пространства имен используются для того, чтобы убедиться, что если у вас есть две страницы с одинаковым именем, то функция url и обратная функция указывают на нужную страницу. Я пытался реализовать пространства имен в тестовом приложении, которое я пишу, но не смог этого сделать.

Вот что у меня есть на данный момент (Это без пространств имен, так как я не смог заставить это работать.

Извлечь из app urls.py

from django.urls import path, re_path
from . import views



urlpatterns = [

 path('', views.index, name = "index"),
]

project urls.py

from django.contrib import admin
from django.urls import path, include, re_path
import gallery



urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
    path('index/', include('gallery.urls')),
]

И, наконец, вот мой файл view.py в папке app

from django.shortcuts import render
from django.urls import reverse


# Create your views here.

def index(request):
    return render(request,"gallery/index.html")

Любая помощь будет оценена по достоинству

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

В вашем случае:

проект urls.py

from django.contrib import admin
from django.urls import path, include, re_path
import gallery



urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls', namespace='your-namespace')),
    path('index/', include('gallery.urls',namespace='your-namespace')),
]

Извлечь из app urls.py

from django.urls import path, re_path
from . import views

app_name = 'app'
urlpatterns = [

 path('', views.index, name = "index"),
]

в шаблоне:

{% url 'app:index' %}
Вернуться на верх