在 Django DecimalField 或 FloatField 中过滤 "larger than 0.01"
Filter on "larger than 0.01" in Django DecimalField or FloatField
table 模型可能如下所示:
def product(models.Model):
price = models.DecimalField(max_digits=20, decimal_places=4, default=Decimal('0.0500'))
alt_price = models.FloatField(default=0.05)
查询类似于:
p = Product.objects.filter(price__lt=Decimal('0.01'))
或:
p = Product.objects.filter(alt_price__lt=0.01)
不幸的是,这两个都不适合我。我有很多符合要求的产品。在 MySQL 中查询工作正常...
我哪里错了?
p = Product.objects.filter(price__lt=Decimal('0.01'))
中的lt
并不意味着大于而是小于。您应该使用 gt
来查找 price
大于 0.01 的对象。
Documentation
table 模型可能如下所示:
def product(models.Model):
price = models.DecimalField(max_digits=20, decimal_places=4, default=Decimal('0.0500'))
alt_price = models.FloatField(default=0.05)
查询类似于:
p = Product.objects.filter(price__lt=Decimal('0.01'))
或:
p = Product.objects.filter(alt_price__lt=0.01)
不幸的是,这两个都不适合我。我有很多符合要求的产品。在 MySQL 中查询工作正常...
我哪里错了?
p = Product.objects.filter(price__lt=Decimal('0.01'))
中的lt
并不意味着大于而是小于。您应该使用 gt
来查找 price
大于 0.01 的对象。
Documentation