【发布时间】:2019-05-12 07:35:57
【问题描述】:
考虑这两个简单的模型:
from django.db import models
class Foo( models.Model ):
pass
class Bar( models.Model ):
time = models.DateTimeField( auto_now_add=True )
foo = models.ForeignKey(
Foo,
on_delete=models.CASCADE
related_name='bars'
)
如何通过第一个相关的Bar 对象订购Foo 对象?
Foo.objects.order_by('-bars.first__time')
【问题讨论】:
-
定义“第一”。记录是无序的。也许你想要最小的
time? -
@WillemVanOnsem
Model.some_related_objects.first()那会做什么? -
它只返回数据库写入它的第一条记录,但该记录每次都可以不同。尤其是在更新/删除/插入之后,
.first()是另外一回事。QuerySet是有序的,因为数据库不能一次写入所有元素,但除此之外没有顺序。 -
@WillemVanOnsem 好的,在这种情况下,我想通过相关的 'Bar' 对象以最短的时间订购
Foo对象。
标签: python django django-models foreign-keys