错误代码:

from __future__ import unicode_literals
from django.db import models
from django.utils.encoding import python_2_unicode_compatible@python_2_unicode_compatible
class Author(models.Model):name = models.CharField(max_length=50)qq = models.CharField(max_length=10)addr = models.TextField()email = models.EmailField()def __str__(self):return self.name@python_2_unicode_compatible
class Article(models.Model):title = models.CharField(max_length=50)author = models.ForeignKey(Author)content = models.TextField()score = models.IntegerField()tags = models.ManyToManyField('Tag')

报错信息:

D:\PythonWorkstation\django\django_station\queryset>python manage.py makemigrations
Traceback (most recent call last):
部分省略.....
    class Article(models.Model):
  File "D:\PythonWorkstation\django\django_station\queryset\blog\models.py", line 20, in Article
    author = models.ForeignKey('Author')
TypeError: __init__() missing 1 required positional argument: 'on_delete'

原因解读:

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

错误代码块:

author = models.ForeignKey(Author)

更正后:

author = models.ForeignKey(Author,on_delete=models.CASCADE)

再次执行更正后的代码即正常

D:\PythonWorkstation\django\django_station\queryset>python manage.py makemigrations
Migrations for 'blog':
  blog\migrations\0001_initial.py
    - Create model Article
    - Create model Author
    - Create model Tag
    - Add field author to article
    - Add field tags to article

对on_delete参数的说明:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个参数:
CASCADE:此值设置,是级联删除;
PROTECT:此值设置,是会报完整性错误;
SET_NULL:此值设置,会把外键设置为null,前提是允许为null;
SET_DEFAULT:此值设置,会把设置为外键的默认值;
SET():此值设置,会调用外面的值,可以是一个函数。
一般情况下使用CASCADE就可以了。

【Python】django报错:TypeError: __init__() missing 1 required positional argument: 'on_delete'解决办法相关推荐

  1. django报错TypeError: __init__() missing 1 required positional argument: 'on_delete'

    个人博客页面链接:http://www.shihao.online (django搭建的个人博客,还在完善中) django报错 TypeError: __init__() missing 1 req ...

  2. TypeError: __init__() missing 1 required positional argument: 'on_delete' 解决办法

    Django 中创建Model时报以下错误: TypeError: init() missing 1 required positional argument: 'on_delete' 代码如下: f ...

  3. Django报错:__init__() missing 1 required positional argument: 'on_delete'

    1. 问题 在根据models生成数据库表时,Django报__init__() missing 1 required positional argument: 'on_delete' 源代码如下: ...

  4. Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...

    原因及解决办法: https://www.cnblogs.com/phyger/p/8035253.html 转载于:https://www.cnblogs.com/yun1108/p/9197195 ...

  5. PyCharm 添加 外键的时候 报错 TypeError:__init__()missing 1 required positional argument:‘on_delete‘

    主要是 Django 版本问题,由2.0 后就需要添加上这一块的信息. 在对应的对象 外键 ,例如: class Comment(models.Model):content = models.Text ...

  6. Django关联数据库时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...

    sgrade = models.ForeignKey("Grades",) 执行python manage.py makemigrations后出现 TypeError: __in ...

  7. 解决Django: [TypeError: __init__() missing 1 required positional argument: 'on_delete']

    试用python3.7 + Django2.1.3的时候, 在创建模型类关联外键时, 报如下错误: Traceback (most recent call last):xxxxxxxxxxx Type ...

  8. Django:TypeError: __init__() missing 1 required positional argument: 'on_delete'

    在Django框架中,有表与表间的关联时,使用命令:python manage.py makmigrations models中的创建表的代码: class Book(models.Model):na ...

  9. Django - TypeError: __init__() missing 1 required positional argument: ‘on_delete‘ 的解决办法

    Django 中创建Model时报以下错误: TypeError: init() missing 1 required positional argument: 'on_delete' 代码如下: f ...

最新文章

  1. 小米手机 DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
  2. pycharm安装过程及文件
  3. 数据结构与算法 / 总章
  4. JAVA 海啸_java线程总结
  5. c++11-template template Parameter
  6. 公众号 采集 java_Java实现公众号数据的抓取
  7. POJ 1426 Find The Multiple BFS
  8. Source Insight 4.0 常用设置
  9. mybatis if test 之 like concat()函数
  10. iOS开发人员需要了解的苹果开发者账号与邓白氏编码
  11. mysql是用啥语言写的_mysql源码是什么语言
  12. Ubuntu 禁止集成noueavu驱动并安装NVIDIA显卡驱动
  13. 零基础通信基础知识入门(4G/5G通信知识入门书籍)
  14. 梦三国则么修改服务器时间,梦三国如何窗口,梦三国设置
  15. Android开发者熬夜也要看完的25本中、高级工程师进阶必看书籍
  16. android开发笔记之高级主题—传感器的简单介绍
  17. 每日 30 秒 ⏱ 漫游器法则
  18. python计算移动平均线_(转)简单移动平均线(Simple Moving Average,SMA) 定义及使用...
  19. SpringBoot进阶(一):再回首SpringBoot maven 项目的三种启动方式
  20. window10设置文件的默认打开方式

热门文章

  1. 如何提高游戏陪玩app源码的代码可读性?
  2. vimplus的安装和使用
  3. eyoucms 网络公司易优专员介绍几种SEO工具
  4. ubuntu16.04下NVIDIA+CUDA+CUDNN+TensorFlow+Pytorch+Opencv等深度学习环境配置
  5. 程序员节~想象VS现实
  6. 实战项目之-scrapy框架实现给孩子取个好名字~
  7. 想不到15寸的球面显示器比17寸液晶用的还舒服~
  8. 轻量级聊天应用VoceChat
  9. Unity设计模式之单例模式
  10. CNNFeatures Off-the-Shelf: An Astounding Baseline for Recognition