关于Django迁移出现问题
关于Django迁移出现问题
源码:
#coding:utf- from django.db import models # Create your models here.
class BookInfo(models.Model):
btitle = models.CharField(max_length=)
bpub_date = models.DateTimeField() class HeroInfo(models.Model):
hname = models.CharField(max_length=)
hgender = models.BooleanField()
hcontent = models.CharField(max_length=)
# hbook = models.ForeignKey(BookInfo)
hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE, )
出错:
(h2) fwl0000@ubuntu:~/桌面/project/test1$ python3 manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line , in <module>
execute_from_command_line(sys.argv)
File "/home/fwl0000/HOME/.virtualenvs/h2/lib/python3.6/site-packages/django/core/management/__init__.py", line , in execute_from_command_line
utility.execute()
File "/home/fwl0000/HOME/.virtualenvs/h2/lib/python3.6/site-packages/django/core/management/__init__.py", line , in execute
django.setup()
File "/home/fwl0000/HOME/.virtualenvs/h2/lib/python3.6/site-packages/django/__init__.py", line , in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/fwl0000/HOME/.virtualenvs/h2/lib/python3.6/site-packages/django/apps/registry.py", line , in populate
app_config.import_models()
File "/home/fwl0000/HOME/.virtualenvs/h2/lib/python3.6/site-packages/django/apps/config.py", line , in import_models
self.models_module = import_module(models_module_name)
File "/home/fwl0000/HOME/.virtualenvs/h2/lib/python3.6/importlib/__init__.py", line , in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line , in _gcd_import
File "<frozen importlib._bootstrap>", line , in _find_and_load
File "<frozen importlib._bootstrap>", line , in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line , in _load_unlocked
File "<frozen importlib._bootstrap_external>", line , in exec_module
File "<frozen importlib._bootstrap>", line , in _call_with_frames_removed
File "/home/fwl0000/桌面/project/test1/booktest/models.py", line , in <module>
class HeroInfo(models.Model):
File "/home/fwl0000/桌面/project/test1/booktest/models.py", line , in HeroInfo
hbook = models.ForeignKey(BookInfo)
TypeError: __init__() missing required positional argument: 'on_delete'
原因是本人安装的Django是2.0.7版本,但由于在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就可以了。
解决方案:
将第十一行的代码改为:
hbook=models.ForeignKey('BookInfo',on_delete=models.CASCADE,)
即在外键值的后面加上 on_delete=models.CASCADE
关于Django迁移出现问题的更多相关文章
- django迁移:全局、局部
django迁移:全局.局部 django 数据库迁移(migrate)应该知道的一些事 https://blog.csdn.net/stonesola/article/details/6975861 ...
- Django迁移数据库报错
Django迁移数据库报错 table "xxx" already exists错误 django在migrate时报错django migrate error: table 'x ...
- Django迁移
Django迁移 学习目标: 如何在不编写任何SQL语句的情况下创建数据库表 更改model如何自动修改数据库 如何还原对数据库所做的更改 迁移能解决的问题 如果你不了解Django或者WEB开发,肯 ...
- 向同一个模型的外键反向关联名称产生了冲突 Django迁移
向同一个模型的外键反向关联名称产生了冲突 一个模型中有两个外键指向同一张表时,创建迁移模型时报错:" HINT: Add or change a related_name argument ...
- django迁移数据库报错解决
迁移数据库时提示之前的项目中模型未引入 如图 我在创建新的工程时,迁移数据模型时发现出错,错误提示关联模型未被解决,提示的模型是之前项目中定义的,本项目并没有用到.于是在不知道错误原因下,我重装dja ...
- HelloDjango 系列教程:第 04 篇:Django 迁移、操作数据库
文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,django 还没有把它翻译成数据库语言,因此实际上这 ...
- django迁移脚本
执行migrate报错的解决办法: 想知道migrate为什么报错,需要先了解migrate到底做了什么事情 migrate做了什么事情? 1.将相关的迁移脚本翻译成sql语句,然后在数据库中执行 2 ...
- 【Django】Django迁移数据库
我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建 为了让 Django 完成翻译,创建 ...
- django迁移model到别的app中
举例: 移动 users.AccessKey 到 authentication.AccessKey中 1. 移动models到新的app中 $ mv users/models/access_key.p ...
随机推荐
- addeventlistener监听scroll跟touch
这三个事件只在手机上生效 touchstart,手指开始触屏 touchmove,手指移动 touchend,手指触屏结束 这个事件在手机上跟在pc端都生效 scroll事件 addeve ...
- hadoop3.1 ha高可用部署
1.资源角色规划
- 【转】Debug 运行正常,Release版本不能正常运行
http://blog.csdn.net/ruifangcui7758/archive/2010/10/18/5948611.aspx引言 如果在您的开发过程中遇到了常见的错误,或许您的Release ...
- AC日记——[Hnoi2017]影魔 bzoj 4826
4826 思路: 主席树矩阵加减+单调栈预处理: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 200005 ...
- AC日记——色板游戏 洛谷 P1558
色板游戏 思路: sb题: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct Tre ...
- python 编码处理
# -*- coding: utf-8 -*-import easygui as gimport sysreload(sys)sys.setdefaultencoding('utf-8')
- 解决lazarus 多线程报错问题
很多人都在Windows中使用线程技术,然后同样的代码移植到Linux下一运行就出错.一开始不解其中的奥妙.既然Lazarus提供了TThread类,也没注明非要在Windows下使用.没道理在Lin ...
- 解析 Qt 程序在Windows 下发布
原文请看:http://www.cnblogs.com/elect-fans/archive/2012/03/15/2408579.html Qt 程序在Windows下发布是本文要介绍的内容,不多说 ...
- 洛谷P1955 [NOI2015] 程序自动分析 [并查集,离散化]
题目传送门 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3...代表程序中出现的变量,给定n个形如xi=xj或x ...
- c++风格
http://web.archive.org/web/20160430022340/http://google.github.io/styleguide/cppguide.html 主要注意几点: 函 ...