搜索
简帛阁>技术文章>django数据库迁移时候异常

django数据库迁移时候异常

django数据库迁移时候异常

一.错误信息

Django在根据models生成数据库表时报 init() missing 1 required positional argument: 'on_delete'

二.原因

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:
TypeError: init() missing 1 required positional argument: 'on_delete'

三.解决方法

加上字段

举例

复制举例说明:
user=models.OneToOneField(User)
owner=models.ForeignKey(UserProfile)
需要改成:
user=models.OneToOneField(User,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值
参数说明:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
CASCADE:此值设置,是级联删除。
PROTECT:此值设置,是会报完整性错误。
SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
SET_DEFAULT:此值设置,会把设置为外键的默认值。
SET():此值设置,会调用外面的值,可以是一个函数。
一般情况下使用CASCADE就可以了。
django20+连接mysql数据库迁移时候报错情况一错误信息djangocoreexceptionsImproperlyConfigured:mysqlclient1313ornewerisre
Django是用python写的web开发框架,其特点是:1重量级框架,内部封装了很多的功能组件,使开发变的简便快速,2MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能相同,负
Django模型迁移安装MySQL驱动,命令如下pipinstallPyMySQL在mysite文件下的__init__py文件importpymysqlpymysqlinstall_as_MySQL
djangodbmigrationsgraphNodeNotFoundError:Migrationorder0002_auto_20181209_0031dependenciesreferencen
1数据导出pythonmanage.pydumpdata不指定appname时默认为导出所有的apppythonmanage.pydumpdata[appname]>appname_data.j
中涉及的示例代码,已同步更新到HelloGitHubTeam仓库我们已经编写了博客数据库模型的代码,但那还只是Python代码而已,django还没有把它翻译成数据库语言,因此实际上这些数据库表还
pythonmanagepymakemigrationspythonmanagepymigratefake这一步会完成迁移,但是不会操作数据库可能会遇到这个错误djangodbutilsInterna
Django是用python写的web开发框架,其特点是:1重量级框架,内部封装了很多的功能组件,使开发变的简便快速,2MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能相同,负
django中,ORM(对象关系映射器objectrelationalmapper)任务是:模型化数据库,创建数据库由另外一个系统负责(迁移migration),迁移任务是根据对modelspy文
假设Model6是需要迁移的app但是运行pythonmanagepymakemigrations和pythonmanagepymigrate后总是报nochanges,可以这么解决1、删除Model