最近在使用Python的Django框架开发web站点,通过models.py文件建表后,执行数据库迁移(命令行:mange.py makemigrations)时报错,下面是查看官方文档后找到的解决方案。

官方文档:Model field reference

报错内容:

1     class Guest(models.Model):
2   File "C:\Users\dell\guest\sign\models.py", line 18, in Guest
3     event = models.ForeignKey(Event)                     # 关联发布会
4 TypeError: __init__() missing 1 required positional argument: 'on_delete'

 models.py文件:

 1 from django.db import models
 2
 3 # Create your models here.
 4 # 发布会表
 5 class Event(models.Model):
 6     name = models.CharField(max_length=100)              # 发布会标题
 7     limit = models.IntegerField()                        # 参加人数
 8     status = models.BooleanField()                       # 状态
 9     address = models.CharField(max_length=200)           # 地址
10     start_time = models.DateTimeField('event time')      # 发布会时间
11     create_time = models.DateTimeField(auto_now=True)    # 创建时间(自动获取当前时间)
12
13     def __str__(self):
14         return self.name
15
16 # 嘉宾表
17 class Guest(models.Model):
18     event = models.ForeignKey(Event)                                 # 关联发布会
19     realname = models.CharField(max_length=64)                       # 姓名
20     phone = models.CharField(max_length=16)                          # 手机号
21     email = models.EmailField()                                      # 邮箱
22     sign = models.BooleanField()                                     # 签到状态
23     create_time = models.DateTimeField(auto_now=True)                # 创建时间(自动获取当前时间)
24
25 class Meta:
26     unique_together = ("event", "phone")
27
28 def __str__(self):
29     return self.realname

解决方法:将报错提示的models文件第18行修改为下面的内容即可:

event = models.ForeignKey('Event','on_delete=models.CASCADE,')

报错原因:

classForeignKey(to,on_delete,** options)

多对一的关系,需要两个位置参数:模型相关的类和on_delete选项。(on_delete实际上并不需要,但是不提供它会给出弃用警告,这在Django 2.0中将是必需的,1.8及以前的版本不需要

要创建递归关系,即:与自身具有多对一关系的对象使用。 models.ForeignKey('self', on_delete=models.CASCADE)

PS:Django的版本更新比较频繁,每次版本迭代都有些改动,有问题直接查官方文档或者Stack Overflow,基本都可以解决。

转载于:https://www.cnblogs.com/imyalost/p/8506766.html

missing 1 required positional argument: 'on_delete'报错解决方案相关推荐

  1. missing 1 required positional argument: ‘on_delete‘报错解决方案

    missing 1 required positional argument: 'on_delete'报错解决方案 参考文章: (1)missing 1 required positional arg ...

  2. TypeError: func() missing 1 required positional argument: 'XXXXX' 报错原因

    在面向对象编程的时候会报这样的错误: TypeError: func() missing 1 required positional argument: 'XXXXX' 报这个错误有两种原因: 1.实 ...

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

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

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

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

  5. 【Python】django报错:TypeError: __init__() missing 1 required positional argument: 'on_delete'解决办法

    错误代码: from __future__ import unicode_literals from django.db import models from django.utils.encodin ...

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

    Django 在更新到 2.0 后 报错如下 TypeError: __init__() missing 1 required positional argument: 'on_delete' 是因为 ...

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

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

  8. Django在根据models生成数据库表时报 missing 1 required positional argument on_delete(亲测)

    code: 1 #encoding=utf-82 from django.db import models3 # Create your models here.4 class BookInfo(mo ...

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

    code: 1 #encoding=utf-82 from django.db import models3 # Create your models here.4 class BookInfo(mo ...

最新文章

  1. 语文教学中如何运用计算机辅助教学,计算机辅助教学在语文教学过程中的运用...
  2. asp.net 备份和恢复SQL SERVER 数据库
  3. TypeScript 使用 字典 Dictionary
  4. 写入usb设备 linux 程序,模拟物理USB设备Linux
  5. 程序员面试题精选100题(12)-从上往下遍历二元树[数据结构]
  6. Nginx与安全有关的几个配置
  7. Java 虚拟机导论:什么是 Java虚拟机
  8. 牛客16785 Cantor表
  9. 负载均衡工具 haproxy 集群安装部署完整流程
  10. 字体大小 js 控制
  11. Kubernetes1.91(K8s)安装部署过程(一)--证书安装
  12. stata 倾向得分匹配(二)偏差校正匹配估计量
  13. bzoj 2169: 连边
  14. C# Json 和对象的相互转换
  15. 输入文本自动生成图像,太好玩了!
  16. 中南大学计算机学院楠,中南比湖大更湖大,不对,应该说湖大没中南大学中南。...
  17. 【asp.net】VS 2008中文版下载
  18. c语言程序设计张新成课后习题答案,C语言练习题2
  19. 寻找三体文明:五环外4.2光年发现液态水,或许另一个宜居星球
  20. 原码,反码,补码是什么?

热门文章

  1. 利用MAVEN打包可运行jar包,包括依赖的第三方包
  2. 滑动换屏——Fragment
  3. H5应用缓存和浏览器缓存有什么区别
  4. bzoj 1207: [HNOI2004]打鼹鼠
  5. jQuery replaceWith replaceAll end的用法
  6. EasyUI-子页面增加显示tabs的一个问题
  7. sed和awk的常用实例
  8. 四、管理网站(一) Using the command line interface
  9. Internet Explorer 8 使用技巧(3):安全上网
  10. Jmeter性能测试入门(一)