Django models django模型:根据ForeignKey属性对queryset进行排序
嗨,我有以下涉及A和B的1:n关系,我想得到一个包含A的所有对象的queryset,该对象按对应B对象的最新日期排序Django models django模型:根据ForeignKey属性对queryset进行排序,django-models,Django Models,嗨,我有以下涉及A和B的1:n关系,我想得到一个包含A的所有对象的queryset,该对象按对应B对象的最新日期排序 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
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中这样做吗?您应该使用annotate。见: 为您的代码
from django.db.models import Max
your_query_set = (
A
.objects
.annotate( max_data = Max( 'b__date_created' ) )
.order_by( '-max_data' )
)
7.9
是一个什么样的日期和时间?它只是一个例子,意思是9月7日
from django.db.models import Max
your_query_set = (
A
.objects
.annotate( max_data = Max( 'b__date_created' ) )
.order_by( '-max_data' )
)