django经理得到任何一个对象

时间:2013-01-27 15:19:23

标签: python django orm django-models one-to-many

在多个模型中,我想从管理器中只获取一个对象(任何一个对象),该怎么做?

models.School.student_set.any_one()

我在文档中没有找到任何此类方法。现在我正在做类似的事情:

models.School.student_set.all()[0]

我认为效率低下。

1 个答案:

答案 0 :(得分:4)

在您实际从中获取一些数据之前,不会对QuerySets进行评估,因此切片all()的结果实际上是有效的。

请参阅docs on QuerySets - “在您执行评估查询集之前,实际上不会发生任何数据库活动。”另外limiting QuerySets上的文件明确提到了你的案例。

如果您有冒险精神,可以查看django.db.connection.queriesdocs

来自行验证。