1

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

models.School.student_set.any_one()

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

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

我认为这是低效的。

4

1 回答 1

4

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

请参阅QuerySets 上的文档- “在您执行某些操作来评估查询集之前,实际上不会发生数据库活动。”。关于限制 QuerySets的文档也明确提到了您的情况。

如果您喜欢冒险,您可以通过查看django.db.connection.queries( docs )自行验证

于 2013-01-27T15:23:34.613 回答