Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django url.py表示未定义我的视图(基于类的视图)_Django_Django Urls_Django Class Based Views - Fatal编程技术网

Django url.py表示未定义我的视图(基于类的视图)

Django url.py表示未定义我的视图(基于类的视图),django,django-urls,django-class-based-views,Django,Django Urls,Django Class Based Views,这是我的项目的my URL.py: from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^CMS/', include('CMSApp.urls')), url(r'^admin/', include(admin.site.urls)), ] 这是我的应用程序(CMSApp)的my urls.py: 它给了我一个名字,错误是这样说的 n

这是我的项目的my URL.py:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^CMS/', include('CMSApp.urls')),
    url(r'^admin/', include(admin.site.urls)),
]
这是我的应用程序(CMSApp)的my urls.py:

它给了我一个名字,错误是这样说的

name 'user_list' is not defined
知道为什么吗

当我这样做的时候

from CMSApp import views

urlpatterns = patterns(
        '',
        url(r'^users$', views.user_list.as_view()),
)
它可以工作,但我只是想知道为什么前者不能工作?

您必须导入

from CMSApp.views import user_list
否则django将不知道定义了用户列表

如果只使用<代码> UsSeriList不显式导入,Python将认为它是本地变量,并返回<代码>名称错误< /C>。


一旦在views.py中定义了
user\u list
,您就必须明确地告诉python在那里搜索它。

您的项目似乎正在使用Django 1.8;您试图使用的行为已在1.8中删除,如本文所述:

将视图引用为字符串,而OP没有这样做。他们只是没能导入模块。@DanielRoseman我认为JoeyWihelm的答案是正确的。我知道“从CMSApp导入视图”可以工作(我在问题中提到过)。我只是想知道为什么前者不起作用(在我的urlpatterns中有“CMSApp.views”)。我想知道这一点,因为即使不做“从CMSAP导入视图”,如果我放“'cmsap.views',url(r'^users$,'user_list',name='user_list'),它过去也可以工作(但现在当我使用基于类的视图时,它因为某种原因而停止工作)。这是因为,正如Joey/django 1.8文档所解释的,现在有一种更推荐的方法来执行此操作。从技术上讲,Daniel Roseman是正确的,您收到此错误是因为缺少导入。我忽略了这一部分,只是注意到了旧式模式的使用。
from CMSApp import views

urlpatterns = patterns(
        '',
        url(r'^users$', views.user_list.as_view()),
)
from CMSApp.views import user_list