如何使字段与其他模型独特

时间:2018-02-10 18:45:04

标签: python django

我有3种不同的模型,它们都有索引字段(小的正整数)。如何让它们彼此独特?

我试图在models.py中覆盖保存模型,除了 ValidationError 异常之外,这项工作还不错。它将我重定向到错误页面,如果我将Debug = False,它根本不会显示我,只是“错误500”或类似的东西。 如果此验证在管理员页面中显示消息,而不刷新,那就太棒了。

也许有人知道如何正确验证这一点,或者如何以其他方式进行验证?

2 个答案:

答案 0 :(得分:0)

也许第四个模型具有三个模型的外键并在第四个模型中使用unique_together元类属性? 仅举例!这不是合法的django代码。

Class Example(models.Model):
    a = models.foreignKey
    b = models.foreignKey

   Class Meta:
        unique_together = ('a', 'b')

答案 1 :(得分:0)

我想您在这些模型之间存在某种业务逻辑关系。为什么不使用在那里定义的唯一键创建parent模型?即

class MasterModel(models.Model):
    unique_attribute = models.CharField(unique=True)

class Child1(MasterModel):
    .... specific fields here....

class Child2(MasterModel):
    .... specific fields here....

class Child3(MasterModel):
    .... specific fields here....