breakpoin处数据库和Django ORM输出不一致

2024-07-04 05:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

在Django中调试单元测试时,我在代码中放置了以下语句

Student.objects.filter(id__in=[1,2]).delete()
...
import pdb; pdb.set_trace()

在断点处,如果我键入Student.objects.count(),我可以看到它由于delete而减少了,但是如果我打开psql(PostgreSQL命令行)并检查test_database,我仍然可以看到行(根据Django已经删除)。为什么我会看到Django ORM和数据库之间的不一致。ORM是否缓存我的查询?如何使其在断点处提交到数据库?你知道吗

更新

调试的快速解决方案。在断点处添加以下行以查看psql中的数据。感谢@DanielRoseman的提示。你知道吗

    from django.db import connection
    connection.cursor().execute('commit;')

Tags: django代码import数据库objectsorm语句单元测试

热门问题