Django:不能在Generic View中的self.xxx中存储变量吗?

时间:2016-10-31 05:27:02

标签: django

views.py

class MyView(View):

    def get(self, request, *args, **kwargs):
        self.foo = "hi"    

    def post(self, request, *args, **kwargs):
        print(self.foo)

GET请求有效但POST请求无效。

发生错误, AttributeError: 'MyView' object has no attribute 'foo'

我不能将self.xxx中的变量保存在views.py

1 个答案:

答案 0 :(得分:1)

get& post方法独立工作,Django在每个请求上创建一个新的MyView实例,这意味着当您第一次运行GET请求时,会创建MyView类的实例,{{ 1}}被赋值,并在请求完成后 - foo被破坏。当您提出MyView请求时,会再次创建POST的新实例,并且它不再具有MyView属性。

要在请求之间保留一些值,您必须使用会话:

foo