Django:AttributeError:“UniqueConstraint”对象没有属性“fields\u orders”

2024-04-19 22:59:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的应用程序中有一个名为“雇佣”的模型,它引用了两个名为“用户”和“公司”的模型。在数据库的Employments表中,在两个外键上有一个复合索引,防止同一个用户在同一个公司有两个工作。我试图使用UniqueConstraint类在Django中表示这个复合索引,但是它抛出了一个错误,我找不到任何文档。在

这种模式通常运作得非常好。但是,当我向模型的索引添加UniqueConstraint时,服务器会抛出一个错误。我查看了UniqueConstraint的文档,以及Django的其余文档,但找不到任何关于我收到的错误的说明。我也尝试过在UniqueConstraint的fields参数中用“User”和“Company”替换“User”和“Company”,但得到了完全相同的错误。在

不确定这是否与问题有关,但我运行的Django服务器中有Dockerpython:3.6容器使用Django 2.2版。在

就业模式如下:

from django.db import models
from app.models import User, Company

class Employment(models.Model):
    Employment_ID = models.AutoField(primary_key=True)
    user          = models.ForeignKey(User, db_column='User_ID', on_delete=models.CASCADE)
    company       = models.ForeignKey(Company, db_column='Company_ID', on_delete=models.CASCADE)

    class Meta:
        db_table = "Employments"
        indexes = [
            models.UniqueConstraint(fields=['User_ID', 'Company_ID'],
                                    name='Employment_User_Company_UNIQUE') # server works fine without this
        ]

当我启动Django服务器时,我得到以下输出:

^{pr2}$

如果有人经历过这种错误或知道解决方法,我将非常感谢你的洞察力。在


Tags: django用户文档模型iddbmodels错误
1条回答
网友
1楼 · 发布于 2024-04-19 22:59:21

您在indexes参数中定义了它,但它应该在^{} [Django-doc]属性中。indexes顾名思义,包含在表上定义的索引列表。constraints另一方面包含应该强制执行的约束。在

class Employment(models.Model):
    Employment_ID = models.AutoField(primary_key=True)
    user = models.ForeignKey(User, db_column='User_ID', on_delete=models.CASCADE)
    company = models.ForeignKey(Company, db_column='Company_ID', on_delete=models.CASCADE)

    class Meta:
        db_table = "Employments"
        constraints = [
            models.UniqueConstraint(
                fields=['User_ID', 'Company_ID'],
                name='Employment_User_Company_UNIQUE'
            )
        ]

相关问题 更多 >