【发布时间】: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