Файл URLs в Django перенаправляет различные URL на неправильные html-файлы

Мой Django сайт работает неправильно. Это трудно объяснить, но когда я запускаю свой веб-сервер Django и перехожу по адресу http://127.0.0.1:8000/hello/ я вижу "Hello, World!", как и ожидалось. Но когда я перехожу на http://127.0.0.1:8000/dashboard/ я вижу то же самое, когда я должен видеть "Hello". Здесь слишком много кода, чтобы поместить его на stack overflow, и он не будет иметь смысла, поэтому я сделал репо на GitHub https://github.com/Unidentified539/stackoverflow.

Ваш код должен быть таким, как в
. practice/urls.py

from django.urls import path
from practice import views

urlpatterns = [
    path(" ", views.hello_world, name='hello_world'),
    path("dashboard", views.dashboard, name='dashboard')

]

Project1 urls.py

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

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

В чем проблема вашего кода?

Согласно вашему коду, у вас есть два одинаковых пути для главной страницы, и когда вы вводите http://127.0.0.1:8000/hello/ Django смотрит на urls.py уровня проекта (в вашем коде djangoProject1/urls.py) и знает, что должно идти в urls.py уровня приложения (в вашем коде practice/urls. py) и в этом файле у вас есть два одинаковых пути, и Django использует первый, поэтому вы получаете страницу write, потому что первый путь связан с hello view, и когда вы набираете http://127.0.0.1:8000/dashboard/ Django снова смотрит на проект-уровень urls.py и знает, что нужно идти в app-level urls.py и в этом файле снова использует первый путь и вы получаете неправильный HTML файл (потому что оба пути одинаковы и Django всегда использует первый)

Как это исправить?

в url.py на уровне проекта установите оба пути в '', а на уровне приложения установите пути на уровне проекта. (другими словами, замените пути в app-level и project-level

)

djangoProject1/urls.py:

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

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

practice/urls.py:

from django.urls import path
from practice import views

urlpatterns = [
    path('hello/', views.hello_world, name='hello_world'),
    path('dashboard/', views.dashboard, name='dashboard')

]

Итак, чтобы упростить свою жизнь

urlpatterns = [
    path("",views.pomo,name="pomo"),
    path("agenda/",views.agenda,name="agenda"),
    path("notes/",views.notes,name="notes"),
  
]

это ваш файл urls.py в вашем приложении

просто введите это в urls.py вашего проекта, чтобы не создавать беспорядок с путями и include

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

это просто пример, вам нужно ввести свои собственные пути и представления

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