Как исправить путь к 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')),
]
Когда я сделал это, у меня возникла такая ошибка
но когда я делаю это
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')),
]
Это работает.
Почему это происходит? Я хочу, чтобы 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
.