У меня есть Donation
модель определяется как:Джанго запрос, среднее количество отчетливый
Donation
project = models.ForeignKey(Project)
user = models.CharField()
Каждый пользователь может пожертвовать несколько раз для любого проекта, поэтому в БД я могу иметь следующее:
Donation
-------------------
project | user
-------------------
1 | A
2 | A
3 | A
1 | B
2 | B
2 | C
Теперь мне нужно вычислить среднее значение отдельного проекта для каждого пользователя, в этом случае оно будет:
A: 3
B: 2
C: 1
=> (3 + 2 + 1)/3 = 2
То, что я до сих пор является следующее:
distinct_pairs = Donation.objects.order_by('project')
.values('user', 'project')
.distinct()
Это дает мне список distincts project
/user
пар, что я могу работать с в питона.
Хотелось бы узнать, есть ли способ query-only
?
Моя установка:
- Джанго 1,8
- PostgreSQL
Просто интересно - почему вы сделали пользовательским полем вместо внешнего ключа для пользовательской модели? Поле Char как пользователь не похоже на лучшую практику, imo –
Это потому, что это не «настоящий» пользователь, это в основном для упрощения примера. – nobe4