【发布时间】:2016-06-09 16:37:41
【问题描述】:
models.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)
【问题讨论】:
-
你的意思是,如何计算?
-
不,我需要获取 3 个不同列的平均值,然后按该值排序
-
如果没有应该被忽略
标签: sql django django-orm