如何为整数过滤Django查询集(DecimalField)

时间:2019-07-18 20:35:43

标签: django postgresql

我有一个包含amountDecimalField(decimal_places=2))字段的查询集。我想过滤查询集以排除金额不是整数(整数)值的任何行。

有效值示例:1.00125.00

无效值示例:0.9914.01

有没有能让我做类似的事情的功能?

qs = qs.filter(amount=floor(F('amount')))

1 个答案:

答案 0 :(得分:0)

开始,您可以使用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'