В настройках моего проекта 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),
]