如何在重定向之前在 Django RedirectView 中设置 cookie?
我感兴趣的不是如何设置 cookie 本身,而是我在哪里可以做到。
您可以覆盖您需要的任何方法并将与 cookie 相关的东西放在那里,例如get
或dispatch
,因为 RedirectView 继承自 django.views.generic.View。
例如,覆盖调度
class Yourclass(RedirectView):
def dispatch(self, request, *args, **kwargs):
#youknow how to set cookie here
return super(Yourclass, self).dispatch(request, *args, **kwargs)
我解决了我的问题。
def get(self, request, *args, **kwargs):
response = super(PartnerRedirectView, self).get(request, *args, **kwargs)
max_age = 365 * 24 * 60 * 60 #one year
expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")
response.set_cookie(key, value, max_age=max_age, expires=expires)
return response