django 如何比较CheckConstraint中的两个字段

o2rvlv0m  于 2023-03-13  发布在  Go
关注(0)|答案(1)|浏览(181)

如果这是我的模型:

class Bid(models.Model):

    amount = models.DecimalField(max_digits=11, decimal_places=2)
    starting_bid = models.DecimalField(max_digits=11, decimal_places=2, null=True)

如何添加一个约束条件来检查金额字段是否大于或等于起始出价?这是我现在所拥有的:

class Meta:
    constraints = [
        models.CheckConstraint(check=Q(amount > starting_bid), name='amount_gte_starting_bid')
    ]

当然这是不正确的。谢谢!

hfyxw5xn

hfyxw5xn1#

使用F()对象来引用模型中的字段。https://adamj.eu/tech/2020/03/10/django-check-constraints-sum-percentage-fields/

class Meta:
        constraints = [
            models.CheckConstraint(
                check=models.Q(
                    amount__gte=models.F("starting_bid")                        )
                ),
                name="amount_gte_starting_bid",
            )
        ]

相关问题