NameError:名称view_post未定义[重复]

Posted

技术标签:

【中文标题】NameError:名称view_post未定义[重复]【英文标题】:NameError: Name view_post is not defined [duplicate] 【发布时间】:2018-08-01 01:30:17 【问题描述】:

更新

我为另一个简单的 Django 问题道歉,但我找不到我想要的。

项目:博客 我正在尝试使用 Django 2.0 对应用程序进行 URL 设计

mysite/url.py

Error after run

server error

【问题讨论】:

你还没有在urls.py中导入view_post 如何在 urls.py 中导入? 看我有帖子作为答案 请不要链接到屏幕截图。复制并粘贴答案中的代码和回溯。 【参考方案1】:

Django 2.0 为 url 添加了新的 path 函数:https://docs.djangoproject.com/fr/2.0/ref/urls/#path

path 不再使用正则表达式。

你有两个解决方案

1) 使用 path 并将 url 模式更改为新的 django 格式

from django.urls import path 
urlpatterns = [
    url('/post/<int:pk>/', ...)
]

2) 保留正则表达式并使用re_path

from django.urls import re_path
urlpatterns = [
    re_path('^/post/(?<pk>[0-9]+)/$', ...)
]

请注意,仍然可以使用url 函数,但可能会在下一个版本中被弃用。在 Django 2.0 中已将其重命名为 re_path

【讨论】:

【参考方案2】:

更新你的 urls.py 文件。

你需要在 urls.py 文件中导入view_post

from blog.views import view_post
#from appname.file.py import (class/func)name

由于您在 urls.py 中使用 view_post,因此您还需要将其导入该文件中。

【讨论】:

找不到页面 (404) 请求方法:GET 请求 URL:127.0.0.1:8000/post/1 使用 mysitee.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,顺序为:admin/ blog/ ^post/ (?P[0-9]+)/$ [name='view_post'] 当前路径 post/1 与其中任何一个都不匹配。您看到此错误是因为您的 Django 设置文件中有 DEBUG = True 。将其更改为 False,Django 将显示标准 404 页面。 用代码而不是图片更新您的问题,并将您的错误发布为文本代码。 post/(?P&lt;pk&gt;\d+)/$更新你的网址post/(?P&lt;pk&gt;[0-9]+)/$ 我想要127.0.0.1:8000/post/1 第一篇博文 post/(?P&lt;pk&gt;\d+)/$ 更新您的url.py post/(?P&lt;pk&gt;[0-9]+)/$,当您点击127.0.0.1:8000/post/1 时,它将返回您想要的结果。

以上是关于NameError:名称view_post未定义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

NameError:名称'unicode'未定义[重复]

NameError:名称'python'未定义[关闭]

NameError:名称“”未定义[关闭]

Buildozer:NameError:未定义名称'functools'

NameError:未定义全局名称“reduce”

NameError:未定义名称“convertToBinaryData”