Django ManyToMany字段给出IntegrityError



我正在使用Django 2.1.2

我有两个型号ItemsQuotation

class Item(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Quotation(models.Model):
company = models.ForeignKey('Company', on_delete=models.CASCADE)
unit_rate = models.CharField(max_length=200)
item = models.ManyToManyField(Item)
def __str__(self):
return self.company.company_name

现在,当我添加Item时,它工作正常。

但当我试图在管理面板中添加报价时,它会给我null value in column "item_id" violates not-null constraint

我是姜戈的新手。如果有人能指出我缺少的东西,那就太好了。

看起来您可能已将Quotation.itemForeignKeyOneToOneField字段更改为ManyToManyField字段。

进行此更改后,必须先运行manage.py makemigrations,然后再运行manage.py migrate来创建并运行必要的数据库迁移。请注意,Quotation.item_id列中的任何现有数据都将被删除,除非您编写迁移以将数据复制到多对多字段。

我最近在一个客户端项目中遇到了这种情况。你猜怎么着,客户端开发人员在Django中修改了一个模型后忘记了进行迁移。

此错误通常是由于数据库而发生的。您可以在DB中检查表的详细信息,以确保向其传递null值的字段实际上是否可以为null。

例如。在Postgres-d table_name

我是怎么解决的?

  1. python manage.py makemigrations
  2. python manage.py migrate

最新更新