python - django 管理器获取任何一个对象

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

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

models.School.student_set.any_one()

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

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

我认为这是低效的。

最佳答案

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

参见 docs on QuerySets - “在您执行某些操作来评估查询集之前,实际上不会发生任何数据库事件。”。还有关于 limiting QuerySets 的文档明确提及您的案例。

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

关于python - django 管理器获取任何一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14548819/

相关文章:

python - Pyspark - 如何使用广播字典按键和值过滤 RDD

django - 如何在 Django 中命名模型外键字段?

python - Django - 如何可视化信号并保存覆盖?

python - 有没有针对视频或图片的 Jinja2/Django 扩展?

orm - 将 Subsonic 用于可能大量访问的 ASPNET MVC 应用程序

python - 我如何开始使用斜纹呢?

python - 替换所有高于阈值的 RGB 值

python - 由于 PySide2 和 Matplotlib,Travis-CI 无法构建

hibernate - ColdFusion ORM 可以处理 Unicode 字符串吗?

typescript - 是否可以使用 TypeOrm 从对象设置字段值?