【发布时间】:2016-02-02 11:39:08
【问题描述】:
例如,如果我有一组这样的模型,我如何确保模型中只有一个具有完全相同的Permissions 集的Group 实例可以存在?
class Permission(models.Model):
name = models.CharField(max_length=100, unique=True)
class Group(models.Model):
name = models.CharField(max_length=100, unique=True)
permissions = models.ManyToManyField(Permission)
class User(models.Model):
name = models.CharField(max_length=100, unique=True)
group = models.ForeignKey(Group)
在 django 中强制执行此约束的最佳方法是什么?我不关心数据库级别的约束。 django 是否在 ManyToMany 模型字段上提供现有标志,或者我需要添加自定义数据验证?如果是,如何?
另外我不使用ModelForms,所以表单验证不是我想要的。
我的问题是关于整个模型中 ManyToMany 字段关系集的唯一性,而不是在单个实例中。
【问题讨论】:
-
@doru 不,这个问题不一样。因为接受的答案假设我想要的是 Django 中的默认行为,但事实并非如此。我的问题是关于整个模型中
ManyToMany字段关系集的唯一性,而不是在单个实例中。
标签: python django django-models