Django CBV RedirectView与cookie

时间:2013-08-12 10:49:47

标签: django cookies

如何在重定向之前在Django RedirectView中设置cookie?

我感兴趣的不是如何设置cookie本身,但我在哪里可以做到。

2 个答案:

答案 0 :(得分:3)

你可以覆盖你需要的任何方法,并将cookie相关的东西放在那里, 例如getdispatch,假设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)

答案 1 :(得分:2)

我解决了我的问题。

 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