【问题标题】:Django & twill - session cookies not being setDjango & twill - 未设置会话 cookie
【发布时间】:2011-07-13 14:16:32
【问题描述】:

我正在使用 twilldjango-test-utils 测试 django 应用程序,但它没有让我登录。

我认为它没有设置 django 会话 cookie。我转到一个调用request.session.set_test_cookie() 的网页(斜纹),然后调用返回,twill.show_cookies()(应该打印出cookie)显示没有cookie。在另一个页面/视图中,request.session.test_cookie_worked() 返回False

奇怪的是,另一个页面调用 request.set_cookie(...) 手动设置 cookie,这很有效。 twill.show_cookies() 显示该 cookie。所以一些 cookie 正在工作,但会话中间件似乎没有工作......

会发生什么?如何让 django 会话 cookie 设置为斜纹?

其他人也有类似的问题,example on django-userscomment about cookies on another twill/django script

【问题讨论】:

  • 客户端和服务器在同一台机器上吗?如果不检查服务器的日期/时间

标签: python django testing cookies twill


【解决方案1】:

作为 F.C.说,如果客户端和服务器是不同的机器,时间不匹配(甚至可能是时区),你最终可能会遇到 cookie 过期问题。

我刚刚仔细检查了the code for set_test_cookie(),它看起来很正常地设置了该值。您确定您遇到问题的页面没有返回错误(因此没有设置test_cookie)?有很多可能发生的方式,但我想不到:

  • Twill 可能不会发送您的应用所需的 Host 标头
  • 斜纹布可能不会发送您的应用所需的referer
  • 斜纹布可能不支持压缩/加密/多部分/其他东西
  • Twill 可能无法以其他方式完美模拟浏览器
  • 您的其他中间件之一可能需要上述的某种组合

仔细检查您的其他中间件。尝试制作一个仅测试此问题的空白项目。仅启用管理员的空白项目就足够了。如果您可以在最小配置中复制它,我们可以更有助于追踪错误。

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 2016-03-14
    • 2020-11-27
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 2016-04-30
    相关资源
    最近更新 更多