如何在django F表达式中得到区间的绝对值?
我试图按模型实例的当前日期和记录日期之间的日期差进行排序 以下是我目前为止的最佳选择,但“腹肌”部分不起作用如何在django F表达式中得到区间的绝对值?,django,Django,我试图按模型实例的当前日期和记录日期之间的日期差进行排序 以下是我目前为止的最佳选择,但“腹肌”部分不起作用 Support.objects.all().annotate( datediff=Func(ExpressionWrapper( F('end_at')-Now(), output_field=DurationField()), function='ABS') ).order_
Support.objects.all().annotate(
datediff=Func(ExpressionWrapper(
F('end_at')-Now(),
output_field=DurationField()), function='ABS')
).order_by('datediff', 'id')
django.db.utils.ProgrammingError:函数abs(interval)不存在
存在
我也试过了
Support.objects.all().annotate(
datediff=ExpressionWrapper(
Func(F('end_at')-Now(), function='ABS'),
output_field=DurationField())
).order_by('datediff', 'id')
有相同的错误。对于排序,在您的情况下,它应该产生相同的顺序,就像简单地按
end\u在
进行排序一样。这也比计算所有行的持续时间,然后排序,然后只显示前n行要快得多。而是对前n行进行排序和显示,并仅计算这些行的持续时间(例如,通过templatetag)。