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
?
答案 0 :(得分:1)
get
& post
方法独立工作,Django在每个请求上创建一个新的MyView
实例,这意味着当您第一次运行GET
请求时,会创建MyView
类的实例,{{ 1}}被赋值,并在请求完成后 - foo
被破坏。当您提出MyView
请求时,会再次创建POST
的新实例,并且它不再具有MyView
属性。
要在请求之间保留一些值,您必须使用会话:
foo