python - django.db.utils.IntegrityError:“id”列中的空值违反非空约束
问题描述
我想将 Django 模型中的数据保存到 PostgreSQL 数据库中:
mymodel.objects.create(title='test')
此模型只有标题和 ID,但会引发此错误:
django.db.utils.IntegrityError:“id”列中的空值违反非空约束
我该如何解决?为什么 id 没有像往常一样自动设置?
解决方案
您应该允许 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
推荐阅读
- java - Java 8 方法引用 - 只能在消费者功能接口中使用
- python - 为什么段落标签不起作用?
- c# - 我无法使用 C# 更新 Ms Access 中的表。没有错误信息
- java - Java 泛型、类型擦除、通配符和函数产生不兼容的类型
- c# - 泛型函数正确用法?
- enterprise-architect - Enterprise Architect 关系矩阵元素分组
- node.js - 使用 Mongoose 虚拟模式时检查多个字段?
- angular - Angular - 响应中的解析器错误
- java - Javapoet 和泛型类声明
- ios - 在 iOS Swift 中,在 Swift 4 中的 TableView 中为 CollectionView 集成不同的数组