为什么我在 django 中重定向到错误的视图?

问题描述 投票:0回答:1

我正在尝试使用 django 中的 URL 渲染到不同的页面,我也编写了所有代码作为教程,

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index,name="index"),
    path('', views.register,name="register"),
    path('', views.login,name="login")
]


def index(request):
    print("hello index")
    return render(request,'index.html')

def register(request):
    return render(request,'register.html')
  
def login(request):
    print("hello login")
    return render(request,'login.html')

但是,每当我点击 HTML 上的注册链接时,它总是会将我带到 index.html。

<ul class="nav">
          <li><a href="{% url 'index' %}"> Home</a></li>
          <li><a href="{% url 'register' %}"> Register</a></li>
          <li><a href="{% url 'login' %}"> Login</a></li>
        </ul>

我也尝试过在路线中放一些东西

urlpatterns = [
        path('admin/', admin.site.urls),
        path('index', views.index,name="index"),
        path('register', views.register,name="register"),
        path('login', views.login,name="login")
    ]

但是这次它给出了诸如 空路径与其中任何一个都不匹配的错误。

我使用上述模式在不同的 django 项目上工作过,它工作得很好。我哪里做错了?任何帮助将不胜感激!

python django django-views django-urls
1个回答
2
投票

您对不同的视图使用相同的路径名。您需要为每个视图使用不同的路径。

例如:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index,name="index"),
    path('register/', views.register,name="register"),
    path('login/', views.login,name="login")
]


def index(request):
    print("hello index")
    return render(request,'index.html')

def register(request):
    return render(request,'register.html')
  
def login(request):
    print("hello login")
    return render(request,'login.html')
© www.soinside.com 2019 - 2024. All rights reserved.