djangoでクラスベースのビューを使い始めたところです。しかし、私を混乱させる問題があります。マルチスレッド開発サーバーを使用して、django1.4.1で次のコードスニペットを実行しました。
class TestView(TemplateView):
template_name = 'test.html'
count = 0
mylist = [1, ]
def get(self, request, *args, **kwargs):
self.count += 1
self.mylist.append(self.mylist[-1] +1)
context = self.get_context_data(**kwargs)
return self.render_to_response(context)
def get_context_data(self, **kwargs):
context = super(TestView, self).get_context_data(**kwargs)
context['count'] = self.count
context['mylist'] = self.mylist
return context
テンプレートは、コンテキスト変数countとmylistを出力するだけです。このビューが呼び出されると、たとえば最大5回、出力は次のようになります。
count: 1
mylist: [1, 2, 3, 4, 5, ]
そして今、私は混乱しています。djangoのドキュメントによると、各リクエストには独自のクラスインスタンスがあります。
では、mylistを複数のリクエストに拡張するにはどうすればよいでしょうか。count変数がインクリメントされなかったのはなぜですか?