我有这个重定向视图,用于设置会话变量。但是,在调用重定向到的视图之前,会话是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进行了检查,在这里和那里引发了异常,并且在重定向调用和视图之间的某处,所有会话数据都被删除了。
答案 0 :(得分:0)
将SESSION_COOKIE_SECURE
设置为False(在我的开发设置中)解决了这个问题。我使用的是本地非https开发环境。