【问题标题】:why am i getting redirecting to wrong view in django?为什么我会在 django 中重定向到错误的视图?
【发布时间】:2021-11-27 11:26:02
【问题描述】:

我正在尝试使用 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 项目上工作过,它工作得非常好。我在哪里做错了?任何帮助将不胜感激!

【问题讨论】:

  • 每个网址都有相同的路径,解决方案是您最后一次尝试,但您需要相应地调用网址,即localhost:8000/index

标签: python django django-views django-urls


【解决方案1】:

你有相同的路径名,所以你需要为不同的视图提供不同的路径。

例如:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index,name="index"),
    path('registe/', 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')

【讨论】:

  • thanx,Sunil 效果很好。
猜你喜欢
  • 1970-01-01
  • 2020-08-23
  • 2021-06-16
  • 2020-06-11
  • 2012-11-25
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多