Django ORM查询无法选择新对象

Jon*_*han 5 python mysql django orm

建立:

  • Python脚本A每15分钟将数据插入数据库
  • Python脚本B每隔几分钟查询最后5个条目

两者都使用django的ORM,相同的MySQL DB和相同的DB用户帐户(相同的settings.py文件)

问题:
B只能获取在运行之前插入的条目.好像B正在使用冻结的DB运行,在B首次连接到DB时冻结.

怎么会?
我可以在django中控制这种行为吗?

var*_*tec 9

如果您正在重用相同的Manager对象,则必须记住它的缓存.要解决这个问题,你必须手动更新.

这将在每次迭代中返回相同的结果:

while True:
   same_every_time = AClass.objects.all().order_by('-id')[:5]
   sleep(300)
Run Code Online (Sandbox Code Playgroud)

为了使其正常工作,您必须添加更新:

while True:
   AClass.objects.update()
   updated_results = AClass.objects.all().order_by('-id')[:5]
   sleep(300)
Run Code Online (Sandbox Code Playgroud)