【问题标题】:Django redirecting to wrong viewDjango重定向到错误的视图
【发布时间】:2020-08-23 19:02:31
【问题描述】:

我有一个名为“vocab”的应用程序,目前它包含一个 CreateView 和一个 ListView。在我的项目 urls.py 文件中,我有以下内容:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',views.HomePage.as_view(),name='home'),
    re_path(r"^accounts/", include("accounts.urls", namespace="accounts")),
    re_path(r"^accounts/", include("django.contrib.auth.urls")),
    re_path(r"^logout/$", views.LogOutPage.as_view(), name="logout"),
    re_path(r"^vocab/", include("vocab.urls", namespace="vocab")),
]

然后,在我的应用程序 urls.py 文件中,我有以下内容:

urlpatterns = [
    path('list/', views.WordList.as_view(), name="list"),
    path("home/",views.VocabHome.as_view(),name='home'),
    path("create/", views.CreateWord.as_view(), name="create"),
]

在我的 html 模板中,我有指向这些视图的链接。主视图和列表视图有效,但是当我单击“创建”链接时,它会将我带到“列表”。在命令行中,我可以看到它正在访问 /vocab/list/?而不是 /vocab/create/。我知道创建视图有效,因为如果我手动输入它,它就会到那里。如果我删除所有其他视图,它也可以工作。因此,当有其他人时,就好像 django 找不到“创建”视图。我已经尽力通过确保所有路径都是唯一的来解决这个问题,并且我尝试过使用正则表达式,但它仍然不起作用。任何帮助将不胜感激!

【问题讨论】:

  • 尝试将创建 url 移到列表 url 之前。
  • 我试过了,问题依旧
  • 阅读此Django Docs,尝试删除.as_view()
  • 如果我删除 .as_view() 我会得到错误。我以为我应该有 .as_view() 因为我使用的是基于类的视图?

标签: python django url django-views urlconf


【解决方案1】:

我发现了错误……

我的 html 中缺少表单结束标记。这导致我的第二种形式(因此链接)无效。

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 2012-11-25
    • 2020-06-11
    • 2017-03-15
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2020-07-07
    相关资源
    最近更新 更多