首页 > 解决方案 > django.db.utils.IntegrityError:“id”列中的空值违反非空约束

问题描述

我想将 Django 模型中的数据保存到 PostgreSQL 数据库中:

mymodel.objects.create(title='test')

此模型只有标题和 ID,但会引发此错误:

django.db.utils.IntegrityError:“id”列中的空值违反非空约束

我该如何解决?为什么 id 没有像往常一样自动设置?

标签: pythondjangopsql

解决方案


您应该允许 Django 创建 id 作为主键,而不是显式地将其放入模型中。如果您需要将其作为单独的字段,您可以将其称为 mymodel_id 之类的其他名称。

例子:

class Book(models.Model):
    title = models.CharField(null=False, blank=False)

def __str__(self):
    return str(self.id)

之后运行:

python manage.py makemigrations
python manage.py migrate

如果您需要将 Django 与现有数据库集成,您可以尝试以下操作:Integrating Django with an existing database


推荐阅读