Django set range for integer model field as constraint

后端 未结 4 1222
误落风尘
误落风尘 2020-12-15 15:51

I have a django model,

class MyModel(models.Model)
    qty = model.IntegerField()

where I want to set constraint for qty somet

4条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-15 16:13

    Since Django 2.2 you can enforce the constraints on a database level with CheckConstraint:

    from django.db import models
    
    class MyModel(models.Model)
        qty = model.IntegerField()
    
        class Meta:
            constraints = [
                models.CheckConstraint(
                    check=models.Q(qty__gte=1) & models.Q(qt__lte=10),
                    name="A qty value is valid between 1 and 10",
                )
            ]
    
    

提交回复
热议问题