Django:无法导入名称路径
Posted
技术标签:
【中文标题】Django:无法导入名称路径【英文标题】:Django: cannot import name path 【发布时间】:2018-11-26 10:58:58 【问题描述】:我的 urls.py 看起来像这样:
urlpatterns = [
path('',views.index, name='index'),
path('entry/(<int:pk>)' , views.details,name='details'),
path('admin/', admin.site.urls),
]
但是当我尝试运行它时,由于找不到路径而出现错误。
尝试 1:
我尝试改用 url,但我不确定如何在 url 中使用第二行。这似乎不起作用:
urlpatterns = [
url(r'^$',views.index, name='index'),
url(r'^entry/(?P<pk>\d+)/' , views.details,name='details'),
url(r'^admin/', admin.site.urls),
]
【问题讨论】:
如果最后使用$
会怎样?
尝试用这个<int:pk>
替换这个(<int:pk>)
。现在要小心教程 - 当 Django 2.0 开始发挥作用时 - 它引入了新的 url 语法,不能与旧的结合。
你使用什么版本的 djago?你能显示所有的回溯
Unable to import path from django.urls 的副本
【参考方案1】:
我想评论 Monhammand 的回答。但是,我做不到,因为我需要至少有 50 个声望。所以,我提交这个作为答案。
如果你想在 Django 2.X 中使用正则表达式,你可以使用re_path()
。
https://docs.djangoproject.com/en/2.0/ref/urls/#re-path
urlpatterns = [
re_path(r'^$',views.index, name='index'),
re_path(r'^entry/(?P<pk>\d+)/$' , views.details,name='details'),
re_path(r'^admin/', admin.site.urls),
]
【讨论】:
【参考方案2】:如果您使用的是 django 2.x,请这样做:
urlpatterns = [
path('',views.index, name='index'),
path('entry/<int:pk>/' , views.details,name='details'),
path('admin/', admin.site.urls),
]
如果您使用的是 django 1.x,请这样做:
urlpatterns = [
url(r'^$',views.index, name='index'),
url(r'^entry/(?P<pk>\d+)/$' , views.details,name='details'),
url(r'^admin/', admin.site.urls),
]
/ 和 $ 很重要
【讨论】:
在 django 2.x 中添加第二个路径的斜线符号结尾和在 django 1.x 中添加 $ 符号以上是关于Django:无法导入名称路径的主要内容,如果未能解决你的问题,请参考以下文章
如何修复Django添加URL路径中的错误,找不到未链接到新代码