Urls.py 表示我的视图未定义(基于 class 的视图)

Urls.py says my view is not defined (class based view)

这是我的 urls.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)),
]

这是我的 urls.py 我的应用程序 (CMSApp):

from django.conf.urls import patterns, url

urlpatterns = patterns(
        'CMSApp.views',
        url(r'^users$', user_list.as_view()),
        url(r'^users/(?P<pk>[0-9]+)$', user_detail.as_view()),
)

我去的时候

CMS/users

它给我一个名字错误说

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不会知道user_list被定义了。

如果你只是使用user_list而不显式导入它,python会认为它是一个局部变量而returnNameError。 在 views.py 中定义 user_list 后,您必须明确告诉 python 在那里搜索它。

您的项目似乎使用的是 Django 1.8;您尝试使用的行为已在 1.8 中删除,如此处记录:https://docs.djangoproject.com/en/1.8/releases/1.8/#django-conf-urls-patterns