Проблема с аннотацией Sum When Case после обновления django
У меня возникла проблема с обновлением django.
models.py:
class TrackReport(BaseMixin):
value = models.PositiveIntegerField()
archive = models.ForeignKey("Archive", related_name="track_reports", on_delete=models.PROTECT)
date = models.DateField(db_index=True)
Запрос:
qs = Archive.objects
qs = qs.annotate(
filtered_by_date_min=Sum(
Case(When(track_reports__date__gte=date_min, then=Value(1)), default=Value(0), output_field=IntegerField())
)
).filter(filtered_by_date_min__gt=0)
python 3.8, django 1.12, postgres 15 без проблем
python 3.11 django 4.1.2, postgres 15:
../../mambaforge/envs/new_sponsordata_arm/lib/python3.11/site-packages/django/db/models/sql/query.py:1289: in build_lookup
lookup_class = lhs.get_lookup(lookup_name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Sum(CASE WHEN <WhereNode: (AND: In(Col(archive_trackreport, archive.TrackReport.type), ['FACEBOOK_POPULARITY']))> THEN Value(1), ELSE Value(0))
lookup = 'gt'
def get_lookup(self, lookup):
> return self.output_field.get_lookup(lookup)
E AttributeError: 'IntegerField' object has no attribute 'get_lookup'
../../mambaforge/envs/new_sponsordata_arm/lib/python3.11/site-packages/django/db/models/expressions.py:377: AttributeError
Я знаю, что прошло уже много лет, но изменилось ли что-нибудь?