假设您有以下型号:
class Student(models.Model):
student_no = models.IntegerField(primary_key=True)
GPA = models.DecimalField(max_digits=65535, decimal_places=65535)
year_of = days_on_market = models.IntegerField()
并且您希望将最高GPA与所有学生联系起来。你是怎么做的?我尝试过以下方法:
Student.objects.annotate(max_GPA = Max('GPA')).aggregate(Max('GPA'))
根据the documentation。但是,这并没有将最大GPA与每个学生联系起来。它只将最大GPA与记录的GPA相关联,该记录与记录的GPA相同,这与记录一样无用。它还返回一个字典{'GPA__max':4.3},但这不是代码的意图。
我查看了here,但是,此解决方案与另一个解决方案完全相同,即关联记录的最大GPA(而不是所有记录的最大GPA),这与GPA相同反正。
实际上,我希望4.3与每个学生联系。
任何有创意的解决方案?
答案 0 :(得分:-1)
尝试删除aggregate
部分:
students = Student.objects.annotate(max_GPA = Max('GPA')).all() # or filter
你应该能够访问:
print students[0].max_GPA