missing 1 required positional argument: 'on_delete'报错解决方案
最近在使用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'报错解决方案相关推荐
- missing 1 required positional argument: ‘on_delete‘报错解决方案
missing 1 required positional argument: 'on_delete'报错解决方案 参考文章: (1)missing 1 required positional arg ...
- TypeError: func() missing 1 required positional argument: 'XXXXX' 报错原因
在面向对象编程的时候会报这样的错误: TypeError: func() missing 1 required positional argument: 'XXXXX' 报这个错误有两种原因: 1.实 ...
- django报错TypeError: __init__() missing 1 required positional argument: 'on_delete'
个人博客页面链接:http://www.shihao.online (django搭建的个人博客,还在完善中) django报错 TypeError: __init__() missing 1 req ...
- Django报错:__init__() missing 1 required positional argument: 'on_delete'
1. 问题 在根据models生成数据库表时,Django报__init__() missing 1 required positional argument: 'on_delete' 源代码如下: ...
- 【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 ...
- Django报错 __init__() missing 1 required positional argument 'on_delete'
Django 在更新到 2.0 后 报错如下 TypeError: __init__() missing 1 required positional argument: 'on_delete' 是因为 ...
- Django关联数据库时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
sgrade = models.ForeignKey("Grades",) 执行python manage.py makemigrations后出现 TypeError: __in ...
- 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 ...
- 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 ...
最新文章
- 语文教学中如何运用计算机辅助教学,计算机辅助教学在语文教学过程中的运用...
- asp.net 备份和恢复SQL SERVER 数据库
- TypeScript 使用 字典 Dictionary
- 写入usb设备 linux 程序,模拟物理USB设备Linux
- 程序员面试题精选100题(12)-从上往下遍历二元树[数据结构]
- Nginx与安全有关的几个配置
- Java 虚拟机导论:什么是 Java虚拟机
- 牛客16785 Cantor表
- 负载均衡工具 haproxy 集群安装部署完整流程
- 字体大小 js 控制
- Kubernetes1.91(K8s)安装部署过程(一)--证书安装
- stata 倾向得分匹配(二)偏差校正匹配估计量
- bzoj 2169: 连边
- C# Json 和对象的相互转换
- 输入文本自动生成图像,太好玩了!
- 中南大学计算机学院楠,中南比湖大更湖大,不对,应该说湖大没中南大学中南。...
- 【asp.net】VS 2008中文版下载
- c语言程序设计张新成课后习题答案,C语言练习题2
- 寻找三体文明:五环外4.2光年发现液态水,或许另一个宜居星球
- 原码,反码,补码是什么?