gpt4 book ai didi

python - 防止 Django 中的外键排列

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:15 24 4
gpt4 key购买 nike

我有一个 django 模型如下:

class ModelName(models.Model):
field_one = models.ForeignKey(Table_One, related_name="field_one")
field_two = models.ForeignKey(Table_One, related_name="field_two")

我知道 unique_together 可用于确保不会出现重复条目​​。

例如,如果对于上表:

unique_together = ['field_one', 'field_two']

然后您可以输入值,例如 A 用于 field_oneB 用于 field_two。但是,您不能再次进行相同的输入。但这也允许 field_one 的条目 Bfield_twoA,根据我的 Controller 逻辑,这是相同的作为 A 和 B

我需要确保如果在各自的字段中输入了 A 和 B,则不能再次输入 B 和 A。

如何只允许输入唯一组合?

最佳答案

示例干净的验证代码,

from django.db.models import Q

def clean(self):
mn = ModelName.objects.filter(Q(field_one=self.field_one,field_two=field_two)|Q(field_one=self.field_two,field_two=field_one))
if mn.exists():
raise ValidationError('Already exist')

关于python - 防止 Django 中的外键排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com