django - 强制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)
推荐阅读
- android - 使用网络摄像头在模拟器(android studio)上运行 ARCore 项目
- python - 在python中调用r脚本?
- javascript - 在 angular/typescript 中触发 bootstrap js collpase() 函数
- vue.js - 不工作...mapGetters
- wordpress - Wordpress 三级菜单自定义 Walker
- angular - 离子形式组补丁值补丁作为字符串数组中的字符串
- angular - 在 Angular2 打字稿类中找不到模块
- javascript - 如何使用 Jest 模拟原生 javascript 方法?
- c++ - C++ 递归函数中的分段错误
- python - Tensorflow 根据其元素和元素的索引创建矩阵