强制Django中具有属性的记录的最大数量



在Django中,是否存在一个"Djangononic";确保一个模型不超过具有某个属性值的n记录的方法?

例如,在下面的示例中,如何确保MyModel的两条记录中不再有my_attribute设置为True

class MyModel(models.Model):
my_attribute= models.BooleanField(default=False)

您可以在自定义的clean或save方法中编写一些简单的验证。

def clean(self, *args, **kwargs):
if (self.my_attribute == True 
and MyModel.objects.filter(my_attribute=True).count() >= 2):
raise ValidationError('Two MyModel obj already have my_attribute=True!')
super(MyModel, self).clean(*args, **kwargs)

相关内容

  • 没有找到相关文章

最新更新