在django.test.client中保存会话ID

2 投票
1 回答
801 浏览
提问于 2025-04-17 05:58

我在数据库的一列中存储了Django的会话密钥(request.session.session_key)——这个应用不需要登录,使用会话来代表唯一用户是可以接受的。这样做没问题,但是现在我在写测试的时候遇到了一些麻烦。

因为测试客户端会保留 cookies,我原以为会话 ID 在多次请求中会保持不变。但看起来这个想法是错的。

举个例子,我希望在...

browser=Client()
browser.post(rating_url, {'term':'Helpful', 'action':'add'}, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
browser.post(rating_url, {'term':'Helpful', 'action':'remove'}, HTTP_X_REQUESTED_WITH='XMLHttpRequest')

...这个视图中两次接收到的会话密钥是一样的。但实际上并不是这样。

如果有人能提供一个解决办法,我会非常感激。

1 个回答

0

这里有一个关于在单元测试中简化匿名会话使用的功能请求。在这个问题单上,你可以找到一种比较复杂的做法。这里是链接 - https://code.djangoproject.com/ticket/10899

撰写回答