【问题标题】:Django group by foreign key and return its objectDjango 按外键分组并返回其对象
【发布时间】:2023-03-13 16:41:01
【问题描述】:

我需要一些关于 django orm 的帮助。 我有一个 EvaluationScore 模型和一个 Category 模型

class EvaluationScore(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4)
    score = models.FloatField(null=True)
    category = models.ForeignKey('Category', on_delete=models.CASCADE, db_column='id_category')

class Category(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4)
    name = models.CharField(max_length=100)

我想做的是查询 EvaluationScore 并按类别返回平均值。所以我做了这样的事情

EvaluationScore.objects.values('category').annotate(Avg('score'))

问题是它为每个门返回一个这样的字典

{'category': UUID('67a56798-24da-4800-af15-79b9839a3f84'), 'score__avg': 28.166666666666668}

我需要的是类别对象,而不仅仅是 UUID。有办法吗?

【问题讨论】:

  • 为什么不对Category模型进行查询?

标签: python django django-models django-views django-orm


【解决方案1】:
Category.objects.annotate(Avg('evaluationscore__score'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2021-12-24
    • 2019-11-04
    • 2018-01-28
    • 2019-04-20
    • 2014-03-16
    相关资源
    最近更新 更多