1

我用sqlalchemy制作了一个工具,可以将条目从一个基础复制到另一个基础。我想添加“试运行”选项,所以不是真正的提交,它只会打印一些将被提交的条目:

session.add(foo)
session.add(bar)
if dry_run:
    print session.number_of_items_to_commit # <-- should print "2"
else:
    session.commit()

如何获取要提交的项目数?我在Session类中没有看到任何合适的方法。

4

1 回答 1

3

您可能可以len(session.new)用于您的任务:

此会话中标记为“新”的所有实例的集合。

如果您还需要跟踪修改过的对象,请使用session.dirty

于 2013-04-29T08:42:06.607 回答