python - 将 django 从 1.8 升级到 2.2.0
问题描述
我将我的 django 项目从 1.8 升级到 2.2.0(使用来自 virtualenv 的 Python 3.6)。我已经完成了以下更改。
- 将 on_delete 添加到所有外键字段
- 将 url 反向导入更改为 from django.urls import reverse
- 在所有应用程序的 url 文件中包含 path/re_path 而不是 url。
- 将设置文件中的 MIDDLEWARE_CLASSES 导入更改为 MIDDLEWARE = {}
我试图运行服务器,但它仍然显示“TypeError:init()缺少1个必需的位置参数:'on_delete'并且它指向/usr2/santhosh/myproject/myapp/migrations/0002_abc.py
我现在该怎么办?我需要从应用程序中删除所有迁移文件并重新运行 python manage.py migrate 还是什么?帮助我你知道。
解决方案
迁移文件仍然只是 python 文件,因此您也需要更新其中的所有引用。
如果您想要一种简单的方法来执行此操作,请查看Easy way to set on_delete across entire application
推荐阅读
- php - Lumen / Laravel:无法弄清楚对 json 响应进行单元测试的工作原理
- rabbitmq - Elm 中的 RabbitMQ 客户端
- xcode - 归档 iOS Audiokit 项目时出现意外的 Mach-O 标头代码
- javascript - 如何在已经由前向动画处理的元素上应用悬停效果?
- php - 如何使用相同的凭据验证 Wordpress 和 PHP 应用程序?
- java - Java Spring验证不起作用
- python - 一次调整两个轴的大小 h5py
- python - 编辑 pyparsing 解析结果
- node.js - 如何包含节点二进制 npm 的路径
- python - Pandas read_html 获取 href 而不是仅针对一列的文本