数据验证 unique 多级
时间: 2023-10-23 15:31:25 浏览: 53
如果要进行多级的 unique 数据验证,可以使用 Django 中的 unique_together 属性。例如,如果我们有一个模型如下:
```
class MyModel(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.CharField(max_length=50)
field3 = models.CharField(max_length=50)
```
现在我们想要验证 field1 和 field2 一起必须唯一,可以在模型中添加 unique_together 属性:
```
class MyModel(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.CharField(max_length=50)
field3 = models.CharField(max_length=50)
class Meta:
unique_together = (("field1", "field2"),)
```
这样,当我们执行数据验证时,Django 就会验证 field1 和 field2 一起的唯一性。如果我们想要验证 field1、field2 和 field3 三个字段的唯一性,可以这样写:
```
class MyModel(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.CharField(max_length=50)
field3 = models.CharField(max_length=50)
class Meta:
unique_together = (("field1", "field2", "field3"),)
```
注意,unique_together 属性只能用于模型中的字段,不能用于模型中的关联字段(例如 ForeignKey)。如果要验证关联字段的唯一性,需要使用 unique_together 和 unique_together_with_fk 这两个属性。