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
这是我的 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