一、在使用mange.py makemigrations时报错

最近在使用Python的Django框架开发web站点,通过models.py文件建表后,执行数据库迁移(命令行:mange.py makemigrations)时报错,

报错内容:

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文件下的event = models.ForeignKey(Event)  修改为:
	 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,基本都可以解决。

你可能感兴趣的:(python,全栈开发之Django错误归类)