Django之开发环境取消外键约束(django.db.utils.IntegrityError: (1452, ‘Cannot add or update a child row: a)
取消外键约束解决此类报错:可以再开发环境中暂时取消外键约束,生产环境在放开在settings.py文件数据库的配置上加上此段代码即可DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': DB_NAME,'USER': DB_USER,'PASSWORD': DB_PASSWORD,'HOST': DB_HOST,
·
取消外键约束
解决此类报错:
可以在开发环境中暂时取消外键约束,生产环境再放开
这样的话即使主表没有数据,相关连的子表也可以插入数据
在settings.py文件数据库的配置上加上此段代码即可
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': DB_NAME,
'USER': DB_USER,
'PASSWORD': DB_PASSWORD,
'HOST': DB_HOST,
'PORT': DB_PORT,
# 取消外键约束
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
}
}
}
拓展:
django框架model中外键不落实到数据库
在外键字段的参数中添加db_constraint=False即可,数据库中没有外键关系,代码中依然可以按照正常外键方式使用。
class User(models.Model):
name = models.CharField(max_length=255)
room = models.ForeignKey(Room, db_constraint=False)
class Room(models.Model):
status = models.IntegerField(default=1)
更多推荐




所有评论(0)