取消外键约束
解决此类报错:
可以在开发环境中暂时取消外键约束,生产环境再放开
这样的话即使主表没有数据,相关连的子表也可以插入数据
在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)