为了监视django中的mysql表更改,我编写了如下代码,
while not find_close_signal():
time.sleep(10)
if MyProject.models.MyModel.objects.all().exists():
some_execution()
然而,它不起作用。如果开头的表中没有条目,则some_execution()将永远不会运行,甚至以后通过其他带外方式填充到该表中的记录。
有没有人遇到过这样的问题?
我也在“manage.py shell”中发现,这个问题发生的完全相同:在这个shell中找不到添加到此shell的db中的任何其他条目。这是真的还是我犯了一些错误?感谢
答案 0 :(得分:1)
不确定这是一个问题,但可能是您在事务中执行了此代码,因此在这种情况下您无法看到任何更改。
还有一件事是你可以在这张支票中跳过“.all()”。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以将数据库标记为“dirty”,以便让Django丢弃缓存结果:
from django.db import transaction
transaction.set_dirty()