我正在用twilldjango-test-utils测试django应用程序,但它没有让我登录。
我认为这不是在设置django会话cookie。我进入一个网页(在twill中)调用request.session.set_test_cookie(),然后在该调用返回后,twill.show_cookies()(应该打印出cookies),不显示cookies。在另一个页面/视图中,request.session.test_cookie_worked()返回False
奇怪的是,另一个页面调用request.set_cookie(...)来手动设置cookie,这很有效。twill.show_cookies()显示该cookie。所以有些cookie正在工作,但是会话中间件似乎不工作。。。
会发生什么事?如何将django会话cookie设置为twill?
其他一些人也有类似的问题,example on django-userscomment about cookies on another twill/django script

最佳答案

正如F.C.所说,如果客户机和服务器是具有不匹配时间(甚至可能是时区)的不同计算机,则可能会导致cookie过期问题。
我刚刚复查了the code for set_test_cookie(),看起来它设置的值很正常。您确定有问题的页面没有返回错误(因此没有设置test_cookie)?有很多种可能发生的方法,但在我的脑海里:
Twill可能不会发送应用程序所需的Host标题
Twill可能不会发送您的应用程序所需的
Twill可能不支持压缩/加密/多部分/其他
Twill可能无法完美地模仿其他方式的浏览器
你的另一个中间产品可能需要以上的组合
再检查一下你的其他中间产品。尝试创建一个只测试此问题的空白项目。只有启用了管理的空白项目就足够了。如果您可以在最小的配置中复制它,我们就可以更有效地跟踪bug。

关于python - Django&Twill-未设置 session Cookie,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5274938/

10-11 11:18