Как исправить путь к django без этого префикса?

Я сделал простой блог, потом сделал новое приложение и скопировал все коды (изменил в новом приложении) и сделал url path. И все они второй путь приложения не работает и хочет префикс... Где моя ошибка?

Вот репо на github, а также мои коды здесь... https://github.com/eseymenler/firmas

Ulus = folder name
Ulusal = project name
Ulusalb = First app
Firma = Second app

основной проект urls.py

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

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include('ulusalb.urls')),
    path("firma/", include('firma.urls')),
]

Когда я сделал это, у меня возникла такая ошибка

enter image description here

но когда я делаю это

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

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include('ulusalb.urls')),
    path("1/firma/", include('firma.urls')),
]

Это работает.

enter image description here

Почему это происходит? Я хочу, чтобы url был таким

path("firma/", include('firma.urls'))

Как я могу решить эту проблему?

Возможно, ulusalb.urls содержит путь, который содержит просто <slug:slug>? Это означает, что будет захвачен любой slug (или строка), включая firma. Что слизь не захватывает , так это слеш, и поэтому, если вы используете слеш, он будет продолжать искать шаблоны и в конечном итоге выстрелит 1/firma/.

Что вы можете сделать, так это поставить firma/ первым:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('firma/', include('firma.urls')),
    path('', include('ulusalb.urls')),
]

Таким образом, сначала он будет искать шаблоны в firma.urls для соответствия, и только если это не удастся, вернется к шаблонам ulusalb.urls.

С учетом этого, возможно, лучше делать пути, которые не перекрываются: представьте, что у вас есть объект с firma в качестве slug, тогда этот объект будет недоступен, так как firma/ выстрелит первым для firma.urls.

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