升级后,我试图在 Django 中更改为基于类的视图,对此我有两个问题。这是我的代码,简化:
# urls.py
urlpatterns += patterns('project.app.views',
('^$', 'index'), # Old style
url(r'^test/$', SearchView.as_view()), # New style
)
# views.py
class SearchView(TemplateView):
template_name = 'search.html'
def get_context_data(self, **kwargs):
messages.success(request, 'test')
return {'search_string': 'Test'}
当我运行它时,我首先得到错误name 'SearchView' is not defined
。有谁知道为什么?
试图跳过我添加from project.app.views import SearchView
的丑陋而不是我希望它工作的方式,但是嘿,我试着看看我是否能让其余的工作。然后我global name 'request' is not defined
因为messages
. 这是有道理的,但我如何在这里获取请求对象?
所以我想知道:如何让视图按预期工作以及如何使用消息get_context_data()
?