Как мне исправить эту проблему с отображением URL? Страницы отображаются, но URL неверен

#python #django #django-urls

#python #django #django-urls

Вопрос:

В этом приложении django я пытаюсь перейти на определенную страницу, но выбранный маршрут неверен. Не могли бы вы, пожалуйста, сказать мне, что я делаю не так.

Пример. От http://127.0.0.1:8000 Я пытаюсь перейти к http://127.0.0.1:8000/register но это приводит меня к http://127.0.0.1:8000/dashboard/register.

http://127.0.0.1:8000/register ссылка работает нормально, хотя, если я введу ее вручную.

views.py

 from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.

def home(request):
    return render(request, 'formfiller/home.html')

def register(request):
    return render(request, 'formfiller/signup.html')

def login(request):
    return render(request, 'formfiller/login.html')

def download(request):
    return render(request, 'formfiller/download.html')

def forgotpw(request):
    return render(request, 'formfiller/forgotpw.html')

def learnmore(request):
    return render(request, 'formfiller/learnmore.html')

def dashboard(request):
    return render(request, 'formfiller/dashboard.html')

def success(request):
    return HttpResponse("Your account has been successfully created.")
  

urls.py (для приложения)

 from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('register', views.register, name='signup'),
    path('login', views.login, name='login'),
    path('download', views.download, name='download'),
    path('forgotpw', views.forgotpw, name='forgotpw'),
    path('learnmore', views.learnmore, name='learnmore'),
    path('dashboard', views.dashboard, name='dashboard'),
    path('success', views.success, name='success'),
]
  

urls.py (для основного проекта)

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('formfiller.urls')),
    path('register/', include('formfiller.urls')),
    path('login/', include('formfiller.urls')),
    path('download/', include('formfiller.urls')),
    path('forgotpw/', include('formfiller.urls')),
    path('learnmore/', include('formfiller.urls')),
        path('success/', include('formfiller.urls')),
        path('dashboard/', include('formfiller.urls')),
]
  

Комментарии:

1. Пожалуйста, отметьте ответ как принятый, если он правильный.

Ответ №1:

Вы должны использовать include('formfiller.urls') только один раз.

urls.py (для приложения)

 from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('register', views.register, name='signup'),
    path('login', views.login, name='login'),
    path('download', views.download, name='download'),
    path('forgotpw', views.forgotpw, name='forgotpw'),
    path('learnmore', views.learnmore, name='learnmore'),
    path('dashboard', views.dashboard, name='dashboard'),
    path('success', views.success, name='success'),
]
  

urls.py (для основного проекта)

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

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

Комментарии:

1. Большое спасибо за помощь.