我正在使用纯python unittest编写一些测试代码。我是这样做的:
# retrieve the demo object to get the initial attributes
demo = DemoModel.objects.get(id='1')
init_name = demo.name
# use the requests module to send a request to change attributes of demo
requests.post(...)
# retrieve the demo object again to see if it's changed
demo = DemoModel.objects.get(id='1')
assertNotEqual(init_name, demo.name)
原来演示对象没有改变!我搜索并检查了很长时间,但是,Django get
查询中没有缓存,mysql也没有。
答案 0 :(得分:0)
你说你在“纯unittest”中使用了请求模块。如果您不小心这样做,很可能您的请求失败了 - 而且您没有检查POST的状态代码。 (它可能失败的一个可能原因是,如果你不提供Django的CSRF值,例如,虽然它也可能因许可检查而失败等)。
您知道帖子是否成功返回?
答案 1 :(得分:0)
似乎不是Django而是Mysql事务问题。见How do I force Django to ignore any caches and reload data?