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),
]

【问题讨论】:

如果最后使用$ 会怎样? 尝试用这个&lt;int:pk&gt; 替换这个(&lt;int:pk&gt;)。现在要小心教程 - 当 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:无法导入名称路径的主要内容,如果未能解决你的问题,请参考以下文章

eclipse无法导入项目

Django中的Python路径不一致-双模块导入

如何修复Django添加URL路径中的错误,找不到未链接到新代码

Django 'ImportError: 无法导入名称 url'

无法导入名称模式 - django

Django,ImportError:无法导入名称 Celery,可能的循环导入?