【问题标题】:Django: cannot import name pathDjango:无法导入名称路径
【发布时间】: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?你能显示所有的回溯

标签: python django rest django-rest-framework url-pattern


【解决方案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 中添加 $ 符号
    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 2011-07-11
    • 2015-03-01
    • 2011-12-27
    • 2018-05-29
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多