我想在我的CreateView中设置一个测试cookie,并且能够在form_valid
函数中获得测试结果(在发送表单后)。
我应该在哪里设置负责设置cookie的代码?
self.request.session.set_test_cookie()
我试图覆盖get_form_kwargs
并将其放在那里,但它没有用。
我的代码:
class MyView(CreateView):
def form_valid(self, form):
if not self.request.session.test_cookie_worked():
pass
else:
pass
答案 0 :(得分:2)
请参阅test_cookie_worked
的文档:
"由于Cookie的工作方式,您必须在之前单独的页面请求中调用set_test_cookie()。"
因此,我建议set_test_cookie
视图中的get
方法:
class MyView(CreateView):
def get(self, request, *args, **kwargs):
self.request.session.set_test_cookie()
super(MyView, self).get(request, *args, **kwargs)
def form_valid(self, form):
if not self.request.session.test_cookie_worked():
pass
else:
pass