Django ProgrammingError должен появляться в предложении GROUP BY или использоваться в агрегатной функции с помощью annotate func

Вот моя модель.

class EnvAi(models.Model):
    dateandtime = models.CharField(db_column='DateAndTime', max_length=50, blank=True, null=True)  # Field name made lowercase. 
    tagname = models.CharField(db_column='TagName', max_length=50, blank=True, null=True)  # Field name made lowercase.
    datavalue = models.CharField(db_column='DataValue', max_length=50, blank=True, null=True)  # Field name made lowercase.

пример даты и времени: "2022-08-10 10:10:20"
поле dateandtime является charField и я должен нарезать дату и время, чтобы получить то, что я хочу.

# views.py
queryset = EnvAi.objects.values('datavalue', 'tagname').annotate(slicedate=Substr('dateandtime', 1, 10)) # slicedate => "2022-08-10"
# Error Code
queryset = queryset.values('tagname', 'slicedate').annotate(max_value=Max('datavalue'))

после создания переменной 'slicedate', я хочу получить максимальное значение каждого tagname и slicedate.
но я получаю ошибку

ProgrammingError: column "Env_AI.DateAndTime" must appear in the GROUP BY clause or be used in an aggregate function

Я пробовал использовать raw sql в базе данных с помощью запроса, но проблем не возникло.

Как я могу решить эту проблему?

Вернуться на верх