您好我有以下1:n涉及A和B的关系,我希望得到一个查询集,其中包含按相应B对象所拥有的最新日期排序的所有A对象。
class A(models.Model):
...
class B(models.Model):
a = ForeignKey(B)
date_created = models.DateTimeField()
示例:
A = {a1, a2}
B = {b1 = (a1, 2.4.), b2 = (a1, 1.5.), b3 = (a2, 7.9.), b4 = (a2, 1.1.)}
然后a2应该在a1之前列出,因为b3比b1和b2的最新日期更新。
有人知道如何在django中这样做吗?
答案 0 :(得分:1)
你应该使用注释。见this sample:
Book.objects.annotate(num_authors=Count('authors')).order_by('num_authors')
代码
from django.db.models import Max
your_query_set = (
A
.objects
.annotate( max_data = Max( 'b__date_created' ) )
.order_by( '-max_data' )
)