Python 将django从1.8升级到2.2.0

Python 将django从1.8升级到2.2.0,python,django,python-3.x,django-2.0,Python,Django,Python 3.x,Django 2.0,我正在使用virtualenv中的Python3.6将django项目从1.8升级到2.2.0。我已经做了以下修改 在所有外键字段中添加了on_delete 将url反向导入更改为从django.url导入反向 在所有应用程序的url文件中包含路径/re_路径而不是url。 将设置文件中的中间件_类导入更改为中间件={} 我试图运行服务器,但它仍然显示TypeError:init缺少1个必需的位置参数:“on_delete”,并且指向/usr2/santhosh/myproject/myapp/

我正在使用virtualenv中的Python3.6将django项目从1.8升级到2.2.0。我已经做了以下修改

在所有外键字段中添加了on_delete 将url反向导入更改为从django.url导入反向 在所有应用程序的url文件中包含路径/re_路径而不是url。 将设置文件中的中间件_类导入更改为中间件={} 我试图运行服务器,但它仍然显示TypeError:init缺少1个必需的位置参数:“on_delete”,并且指向/usr2/santhosh/myproject/myapp/migrations/0002_abc.py


我现在该怎么办?我是否需要从应用程序中删除所有迁移文件并重新运行python manage.py migrate,或者做什么??请告诉我您知道。

迁移文件仍然只是python文件,因此您也需要更新这些文件中的所有引用


如果您想要一种简单的方法来完成此操作,请查看该消息,该消息表示您忘记更改FK。 用这个来了解什么是模型

`cat [your_model].py | egrep -i --color -o 'models\.ForeignKey\((.*?)'   | egrep -i -v 'on_delete'`, 

别忘了在每种类型的关系中都要这样做,不仅仅是外键类型,还有OneToOne…等等。

如果我错了,请纠正我。因此,我需要更新所有应用程序中的所有迁移文件,在相应的模型中使用新的on_delete更改。如果删除所有迁移文件并使用migrate命令重新创建它,会发生什么情况?这一行中的“应用程序”指的是->路径“应用程序”。glob'*/migrations/.py'??@Santhosh-有时删除迁移文件不是一个选项,自己调整文件也很容易,我真的无法评论其他答案使用了什么,在过去,在文本编辑器中替换regex对我来说已经足够好了。