Django + sqlite ошибка при аннотации: Выражение содержит смешанные типы: DurationField, IntegerField. Вы должны установить выходное_поле

Я создаю алгоритм ранжирования, построенный как выражение в Django с базой данных Sqlite. Это выглядит следующим образом:

posts = (
            Post.objects.annotate(
                upvote_count=Count("upvote"),
                score=ExpressionWrapper(
                    (
                        (Count("upvote") - 1)
                        / ((Seconds(Now() - F("published_date"))) + 4) ** gravity
                    )
                    * 100000,
                    output_field=FloatField(),
                ),
            )
            .filter(
                publish=True,
                blog__reviewed=True,
                blog__blocked=False,
                show_in_feed=True,
                published_date__lte=timezone.now(),
            )
            .order_by("-score", "-published_date")
            .select_related("blog")
            .prefetch_related("upvote_set")[posts_from:posts_to]
        )

Однако я получаю следующую ошибку от score ExpressionWrapper: Expression contains mixed types: DurationField, IntegerField. You must set output_field.

Я указал output_field и совершенно уверен, что это должно быть float.

Есть предположения, что здесь может происходить?

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