我的代码中有以下模式:

cursor.execute("INSERT INTO main_catalog (1,'mark')")
conn.commit()

item = Catalog.objects.get(pk=1)
item.do_something()


但是,即使在数据库中可以看到它,我仍然收到一个错误,说Catalog.DoesNotExist for id = 1。如何让ORM识别此新值,以便随后查询它? (请注意,出于某些原因,我必须使用原始sql。)

最佳答案

以下模式可用于重置连接并获得“新鲜光标”:

from django import db

try:
    item = Catalog.objects.get(pk=1)
except Catalog.DoesNotExist:
    db.close_connection()
    item = Catalog.objects.get(pk=1)


这个问题也可能有用:Django multiprocessing and database connections

关于python - 在SQL中插入时如何刷新Django连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30385570/

10-11 03:08