我有 2 张桌子说
class A(models.Model):
A_version = models.DecimalField(max_digits=4, decimal_places=0)
A_name = models.CharField(max_length=32, blank=True)
A_type = models.CharField(max_length=32, blank=True)
unique_together(A_version,A_name)
class B(models.Model):
B_version = models.ForeignKey(A)
B_name = models.ForeignKey(A)
last_reported_time= models.DecimalField(max_digits=4, decimal_places=0)
unique_together(B_version,B_name)
obj = B.objects.filter(B_name__A_type="Vendor").
values('B_name','B_version').annotate(Max('last_reported_time')).
order_by('B_name','B.B_version')
last_reported
不是唯一的。
现在我有2个问题。
当我使用
distinct
代替时,annotate
我无法获得不同的值。所以我annotate
按照一些人的建议使用。我仍然得到非不同的值。如何获得不同的值?如果我查看上述查询的原始 sql 查询,它将被翻译成
order_by(B.B_name and A.B_version)
. 我怎样才能得到order_by(B.B_version)
?