Проблема с выполнением запросов к полям ForeignKey в Django

Я пытаюсь сделать запрос, чтобы найти количество зарядных станций с определенным типом заряда на зарядной станции.

Модели

class ChargeType(models.Model):
    level = models.CharField('Charging speed', max_length=15)
    current = models.BooleanField('Default AC, Check for DC')

    def __str__(self):
        return self.type

class ChargeStation(models.Model):
    name = models.CharField(max_length=80)
    address =   models.TextField()description = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.name

class ChargeLot(models.Model):
    charge_type = models.ForeignKey(ChargeType, blank=True, null=True, on_delete=models.SET_NULL, related_name='chargetype')
    charge_station = models.ForeignKey(ChargeStation, blank=True, null=True, on_delete=models.PROTECT)

    def __str__(self):
        return self.charge_type.type

Я пытался

from django.contrib.postgres.aggregates import ArrayAgg

chargelot=ChargeLot.objects.all()

ChargeStation.objects.annotate(level=ArrayAgg('chargelot__charge_type__level'))

Но он возвращает FieldError, говоря, что chargelot не является одним из доступных вариантов.

Как можно получить все уровни заряда ChargeLots в одном ChargeStation? Спасибо.

Это должно сработать для вас.

from django.db.models import Avg
ChageLot.objects.values('charge_type__level').annotate(count=Avg('charge_type__level'))
Вернуться на верх