在 Django 中强制使用属性的最大记录数
Force maximum number of records with attribute in Django
在 Django 中,是否有一种“Djangonic”方法可以确保模型具有特定属性值的记录不超过 n
条?
例如,如何确保在下面的示例中 MyModel
的两条记录中没有更多的 my_attribute
设置为 True
?
class MyModel(models.Model):
my_attribute= models.BooleanField(default=False)
您可以将一些简单的验证写入自定义的清理或保存方法中。
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)
在 Django 中,是否有一种“Djangonic”方法可以确保模型具有特定属性值的记录不超过 n
条?
例如,如何确保在下面的示例中 MyModel
的两条记录中没有更多的 my_attribute
设置为 True
?
class MyModel(models.Model):
my_attribute= models.BooleanField(default=False)
您可以将一些简单的验证写入自定义的清理或保存方法中。
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)