Django Meta.constraints 在我的模型中不起作用

问题描述 投票:0回答:1

我试图为模型中的两个主键定义唯一约束,因为它们被其他模型引用。并且 ent_ruc 不能是唯一的。必须与 ent_id 一起唯一。

class Enterprise(models.Model):
    ent_id = models.CharField(
        db_column='ENT_ID', primary_key=True, max_length=16, default=timestamp_id_16)
    ent_ruc = models.CharField(
        db_column='ENT_RUC', max_length=16)
    ent_name = models.CharField(db_column='ENT_NAME', max_length=256)
    ent_address = models.CharField(db_column='ENT_ADDRESS', max_length=512)
    ent_type = models.CharField(db_column='ENT_TYPE', max_length=2)

    class Meta:
        db_table = 'ENTERPRISE'
        constraints = [
            models.UniqueConstraint(
                fields=['ent_ruc', 'ent_id'], name='unique_enterprise')
        ]

但是当我运行服务器时,我收到错误:

'Enterprise.ent_ruc' 必须是唯一的,因为它是由外键引用的。 提示:在此字段中添加 unique=True 或在模型 Meta.constraints 中添加 UniqueConstraint(无条件)。

为什么 Meta.constraints 不起作用?

django django-models django-rest-framework constraints
1个回答
0
投票

尝试为 ent_ruc 字段设置 unique=True ,即

ent_ruc = models.CharField(db_column='ENT_RUC', max_length=16, unique=True)
© www.soinside.com 2019 - 2024. All rights reserved.