HttpResponseRedirect

时间:2018-06-15 10:37:52

标签: django django-sessions

我有这个重定向视图,用于设置会话变量。但是,在调用重定向到的视图之前,会话是flush,因为整个会话都是空的。

(顺便说一句,这是真正的代码,我已经找到原因找到了原因,但仍然无法找到它。)

class ActivateUserView(RedirectView):
    def get(self, request, *args, **kwargs):
        # activates user and redirects to listing
        listing = Listing.objects.get(id=2)
        request.session['test'] = 'icle'
        print("Session set to: ", request.session.get('test', "Nothing!"))
        return HttpResponseRedirect(reverse('listing-detail', kwargs={'pk': listing_pk, 'slug': listing.slug}))

上面的视图被重定向到:

class ListingDetailView(TemplateView):
    template_name = "frontend/detail.html"

    @method_decorator(ensure_csrf_cookie)
    def get(self, request, *args, **kwargs):
        print("Session data: ", request.session.get('test', "Nothing!"))
        return super(ListingDetailView, self).get(request, *args, **kwargs)

在控制台中,我得到:

Session set to:  icle 
Session data:  Nothing!

我已经使用django-debug-toolbar进行了检查,在这里和那里引发了异常,并且在重定向调用和视图之间的某处,所有会话数据都被删除了。

1 个答案:

答案 0 :(得分:0)

SESSION_COOKIE_SECURE设置为False(在我的开发设置中)解决了这个问题。我使用的是本地非https开发环境。