アップグレード後に Django でクラスベースのビューに変更しようとしていますが、これに関して 2 つの質問があります。これは私のコードで、簡略化されています:
# 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()
?