跨类和函数的python django自变量
我的观点是:跨类和函数的python django自变量,python,django,Python,Django,我的观点是: class MyView(View): def get(self, request): email = get_email() self.email = email return def post(self, request, **kwargs): if not self.email in kwargs['email'] return redirect(some_url)
class MyView(View):
def get(self, request):
email = get_email()
self.email = email
return
def post(self, request, **kwargs):
if not self.email in kwargs['email']
return redirect(some_url)
return
正如我所知,在self make中指定值对类来说是全局的。在我的get中,我将电子邮件分配给self.email,它也应该通过post访问。但它现在起作用了。在post中,我无法收到self.email
有人能给我指点一下吗?这里的问题是每次只调用
get
和post
中的一个
如果您希望self.email
在get
和post
方法中都可用。您应该重写dispatch
方法。dispatch
方法是类在调用可调用的入口点as_view
类方法时调用的方法
class MyView(View):
def dispatch(self, request, *args, **kwargs):
email = get_email()
self.email = email
return super(MyView, self).dispatch(request, *args, **kwargs)
当您发送
get
请求时,它与发送post
请求时是不同的MyView
实例。每个请求都是一个新实例
考虑以这样一种方式重写您的方法,即您不需要像这样存储电子邮件(例如,如果必须的话,可以将其存储在request.session中,但根据您真正想要做的事情,可能有更好的方法)