Django Query - 使用日期比较中的布尔值进行注释

Opt*_*ime 4 django django-models django-orm

我想编写一个查询,该查询将根据模型中的日期与现在的日期/时间的比较来添加过期注释,并根据结果接收布尔值。我找不到这是如何完成的。

到目前为止我已经尝试过以下操作:

.annotate(expired=F( F('date_updated') > datetime_now))
Run Code Online (Sandbox Code Playgroud)

有人可以让我知道实现这一目标的方法吗?

Wil*_*sem 7

您可以使用[Django-doc]BooleanField条件的结果 来注释对象:ExpressionWrapper

from django.db.models import BooleanField, ExpressionWrapper, Q

MyModel.objects.annotate(
    expired=ExpressionWrapper(
        Q(date_updated__gt=datetime_now),
        output_field=BooleanField()
    )
)
Run Code Online (Sandbox Code Playgroud)