В настройках моего проекта Django, похоже, возникает ошибка

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/Billing/
Using the URLconf defined in eCommerce.urls, Django tried these URL patterns, in this order:

admin/
The current path, Billing/, didn’t match any of these.

You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

Это отображается, когда я пытаюсь создать приложение с помощью django Вот код программы

main.urls

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

from BillingST.eCommerce.Billing import views

urlpatterns = [
    path("admin/", admin.site.urls),
    path("Billing/", include('Billing.urls')),
    path('', views.access, name='access')
]

billing.urls

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

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

Я пытался запустить код для страницы биллинга, но он говорит, что нужно перейти в админку

Ваши billing.urls по сути делают невозможным посещение представления, так как оно продолжает рекурсивно включаться.

Действительно, сначала есть main.urls, который выглядит так:

path('Billing/', include('Billing.urls'))

, что означает, что он перейдет к Billing.urls, только если путь начинается с Billing/, что и происходит.

Но затем мы видим:

path('Billing/', include('Billing.urls'))

в billing.urls, поэтому если на пути встретится второй Billing/, он спустится на следующий уровень, но даже в этом случае он будет продолжать искать еще Billing/s.

Перепишите billing.urls на:

# billing/urls.py

from BillingST.eCommerce.Billing import views
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('', views.access),
    path('admin/', admin.site.urls),
]

и удалите вид из main.urls:

# main/urls.py

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

# from BillingST.eCommerce.Billing import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('Billing/', include('Billing.urls')),
    # path('', views.access, name='access')
]

Примечание: Модули Python обычно пишутся в snake_case, а не PascalCase, так что это должно быть billing, а не Billing.

Проблема в том, как структурированы и включены ваши шаблоны URL.

main.urls - Вы включаете Billing.urls с путем «Billing/». Это означает, что Django будет искать шаблоны в Billing.urls с префиксом «Billing/».

billing.urls - Внутри Billing.urls вы снова включаете Billing.urls (рекурсивное включение). Это приводит к зацикливанию и разрыву URL. Billing.urls не определяет ни одной корректной конечной точки, поэтому вы получаете 404.

Определите правильную структуру URL для биллинга

main.urls -

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

urlpatterns = [
    path("admin/", admin.site.urls),
    path("Billing/", include('Billing.urls')),  # Include Billing app URLs
]

billing.urls -

  • Не включайте Billing.urls внутрь себя.
from django.urls import path
from . import views  # Import the views for the Billing app

urlpatterns = [
    path("", views.billing_home),
    path("details/", views.billing_details),
]
Вернуться на верх