我有一个包含amount
(DecimalField(decimal_places=2)
)字段的查询集。我想过滤查询集以排除金额不是整数(整数)值的任何行。
有效值示例:1.00
,125.00
无效值示例:0.99
,14.01
有没有能让我做类似的事情的功能?
qs = qs.filter(amount=floor(F('amount')))
答案 0 :(得分:0)
从django-2.2开始,您可以使用Floor
function [Django-doc]:
from django.db.models.functions import Floor
qs.filter(amount=Floor('amount'))
对于最新的Django版本,您可以自己实现此功能,就像在Django-2.2 [GitHub]中实现一样:
class Floor(Transform): function = 'FLOOR' lookup_name = 'floor'