sql - Django ORM 如何获得平均值

标签 sql django django-orm

模型.py

class Testimonials(models.Model):
    RATING = (
            (1,'Очень плохо'),
            (2,'Плохо'),
            (3,'Средне'),
            (4,'Хорошо'),
            (5,'Очень хорошо'),
        )
    EXP = (
            (1, 'Не указан'),
            (2, 'Один день'),
            (3, 'Одна неделя'),
            (4, 'Один месяц'),
            (5, 'Более года'),
        )
    user = models.OneToOneField(User)
    publish = models.BooleanField(default=False)
    created = models.DateTimeField(auto_now_add=True)
    testimonial = models.TextField(max_length=1000, null=True, blank=True)
    rating_sup = models.IntegerField(choices=RATING, max_length=1, null=True, blank=True)
    rating_stability = models.IntegerField(choices=RATING, max_length=1, null=True, blank=True)
    rating_trust = models.IntegerField(choices=RATING, max_length=1, null=True, blank=True)
    experience = models.IntegerField(choices=EXP, max_length=1, default=1, blank=True)
    affiliate = models.ForeignKey(Affiliate, null=True, blank=True)
    offer = models.ForeignKey(Offer, null=True, blank=True)

我的查询集是:

Affiliate.objects.get(pk=2).testimonials_set.all().aggregate(Avg('rating_trust'), Avg('rating_sup'), Avg('rating_stability'))

结果:

{'rating_stability__avg': 3.0, 'rating_trust__avg': None, 'rating_sup__avg': 4.0}

我如何获得 3 个值的平均值 ((3+4)/2=3.5)

最佳答案

您必须尝试使用​​ F() 函数。我认为这可以解决您的问题

https://docs.djangoproject.com/en/1.7/ref/models/queries/#f-expressions

Affiliate.objects.get(pk=2).testimonials_set.all().aggregate(Avg(F('rating_stability') + F('rating_sup')))

关于sql - Django ORM 如何获得平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652128/

相关文章:

python - Django 中所有模型的通用 app_label

python - 参数\"input\"在更新公司时具有无效的值 id

sql - 在1500万个单词的语料库中查找单词的句子

sql - DB2 中的意外标记 "LIMIT"

javascript - 从数组中获取值

python - 按外键分组并显示相关项目 - Django

python - 使用 Django ORM 查询如何注释是否存在多个级别的外键层次结构

python - 基于 2 个字段的 Django 过滤器

mysql - select_for_update 在解锁后是否会看到另一个 select_for_update 事务添加的行?

php - 如何排列网页上的当前用户数?