在多个模型中,我想从管理器中只获取一个对象(任何一个对象),该怎么做?
models.School.student_set.any_one()
我在文档中没有找到任何此类方法。现在我正在做类似的事情:
models.School.student_set.all()[0]
我认为效率低下。
答案 0 :(得分:4)
在您实际从中获取一些数据之前,不会对QuerySets进行评估,因此切片all()
的结果实际上是有效的。
请参阅docs on QuerySets - “在您执行评估查询集之前,实际上不会发生任何数据库活动。”另外limiting QuerySets上的文件明确提到了你的案例。
如果您有冒险精神,可以查看django.db.connection.queries
(docs)