Как получить количество определенного атрибута [например, age_group] в следующем Django Query на основе диапазонов? - PullRequest
1 голос
/ 22 мая 2019

Я использую Django 2.2.У меня есть следующее models.py в Django.

class Study(models.Model):
    id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
    age_group = models.DecimalField(decimal_places=2, max_digits=5)
    gender = models.CharField(max_length=40, null=True, blank=False)
    created_at = models.DateTimeField(auto_now=True)

Теперь у меня есть некоторые значения, которые заполняются с помощью формы, которые выглядят следующим образом:

age_group - 13  gender - male
age_group - 27  gender - female 
age_group - 20  gender - male 

Теперь я хочу group age_group набирать на основе диапазонов.Например, мой вывод должен быть:

age_group 5-21  Count : 2
age_group 22 - 30  Count : 1

Я пробовал следующий запрос: Но я застрял с частью группы.

Вот запрос, который я пробовал до сих пор:

Study.objects.filter(Q(age_group__range=[10,20])| Q(age_group__range=[21,35]) | Q(age_group__range=[36, 54])).values('age_group').annotate(Sum('age_group')).order_by('age_group')

Любая помощь будет оценена.ТИА

...