问题标签 [django-upgrade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
618 浏览

python - ModuleNotFoundError:没有名为“django.contrib.wagtail”的模块

最近的错误日志(python manage.py runserver):

==================================================== ================

更新:

我删除了数据库并在 pgAdmin 中创建了一个新数据库并执行了 python manage.py makemigrations 和 python manage.py migrate - 两者都有效。

当我运行 python manage.py runserver 时,我收到以下错误:

==================================================== ================ 我们正在开发一个 Django 项目并希望将软件包升级到最新版本。首先,我们尝试安装 requirements.txt 中提到的与项目相关的所有包。在安装 requirements.txt 文件中提到的包时,一些包需要升级。因此,我们相应地对其进行了升级,请在 requirements_new.txt(使用 pip freeze > requirements_new.txt 生成的文件)下找到项目中安装的最新包。我们能够成功安装所有软件包。但是,当我们执行 python manage.py makemigrations 时,我们收到以下错误:

请在 requirements_new.txt 中的软件包下方找到

请在 requirements.txt 中的软件包下方找到

请在下面找到应用程序列表

请在下面找到中间件部分:

有人可以帮我们解决问题吗?

0 投票
1 回答
174 浏览

django - 切换到django 3并返回django 2后无法登录Django项目

我有一个 Django 2.2 项目,它在一堆不同的服务器上运行,但它们使用相同的数据库。

我创建了一个分支来迁移到 Django 3,但并非所有服务器都会同时迁移。

我使用 Argon2:

当我在开发分支中切换到 django 3.2 时,一切正常。但是,当我回到 Django 2.2 时,我开始收到如下错误:

  • 模板语法错误
  • 填充错误 ( exception location: .../python3.6/base64.py in b64decode)

只需删除 cookie 并重新加载即可解决这些问题。所以我猜测它们与 django 3.1 中从 sha1 到 sha256的新默认散列算法的变化有关。

无论如何,重新加载后,页面工作。但是当我尝试登录时,它无法识别凭据。

然后我从备份中恢复了数据库并可以登录 django 2.2。

我再次尝试使用以下设置在 django 3.2 上运行:

DEFAULT_HASHING_ALGORITHM = 'sha1'

现在,当切换回 2.2 时,我在页面加载时没有收到错误(我不需要删除 cookie),但凭据仍然不起作用。

对我来说,切换到 django 3.2 后,数据库中密码的哈希值发生了变化。

django 3是否有可能重写数据库中的密码?任何人都可以指出解决方案或尝试的东西吗?

谢谢你。

0 投票
1 回答
69 浏览

python - 使用不兼容的迁移升级 Django

我的任务是为当前使用 Django 2.2.24 的项目升级 Django 版本。它包含一个模型(具有现有迁移),大致如下所示:

从 Django 3.0 开始,on_delete=None会导致错误,因为 on_delete 应该是可调用的。为了避免错误,必须更改模型和现有迁移
就其本身而言,像这样更改模型不是问题:

但是现有的数据库还不知道相应的字段可以为空,因此需要进行新的迁移
我目前看到的最好的方法是:

  • 改变模型
  • 使用 Django 2.2.24 创建和应用迁移
  • 手动更改旧迁移

有没有更优雅的方法来解决这个问题?

0 投票
2 回答
95 浏览

python - 从 Django 3.2.10 升级到 Django 4.0.1 - “获取字段的位置和关键字参数”错误消息

我正在尝试将 Django 项目从版本 3.2.10 更新到 4.0.1

运行测试时,我收到此错误:

引发错误的代码是:

我将如何解决这个错误?