Python Django模型:如何强制每个类实例的n个外键成员是唯一的?
Django模型:如何强制每个类实例的n个外键成员是唯一的 假设我有这个模型Python Django模型:如何强制每个类实例的n个外键成员是唯一的?,python,django,model,Python,Django,Model,Django模型:如何强制每个类实例的n个外键成员是唯一的 假设我有这个模型 class SomeClassA(models.Model): first = models.CharField(max_length=25, null=True, blank=False) last = models.CharField(max_length=25, null=True, blank=False) classChoice1 = models.ForeignKey(SomeCla
class SomeClassA(models.Model):
first = models.CharField(max_length=25, null=True, blank=False)
last = models.CharField(max_length=25, null=True, blank=False)
classChoice1 = models.ForeignKey(SomeClassB, related_name='choice1')
classChoice2 = models.ForeignKey(SomeClassB, related_name='choice2')
classChoice3 = models.ForeignKey(SomeClassB, related_name='choice3')
实施/检查这三个“classChoice#”选项在每个项目中是唯一的正确方法是什么
某个类的实例
换句话说,如果为classChoice1、classChoice2、classChoice3选择的任何选项在它们之间不是唯一的,我如何防止输入
伪
classChoice1 != classChoice2
classChoice2 != classChoice3
classChoice3 != classChoice1
阅读执行您可以使用的自定义验证方法。您可以使用它自动为字段提供值,或者执行需要访问多个字段的验证,这是您的情况。您可以执行以下操作: 来自django.core.exceptions的
导入验证错误
从django.db导入模型
类SomeClassA(models.Model):
...
def清洁(自清洁):
如果len(set((classChoice1.id,classChoice2.id,classChoice3.id))<3:
raise ValidationError('classChoice[1,2,3]应具有不同的值')
这并不能回答我的问题。使用'unique_-together=(“classChoice1,“classChoice2”,“classChoice3”),`允许我只创建一个SomeClassA的实例,在整个SomeClassA集合中只有一个唯一的设置。我正在寻找一个解决方案,其中第n个SomeClassB的选项1-3对于SomeClassA的每个实例都是唯一的