8

我最近升级到 Django 1.8。在以前的 Django 版本中,以下导入很好:

from django.contrib.contenttypes.management import update_all_contenttypes

update_all_contenttypes似乎已在 Django 1.8 中被悄悄删除(它在 1.7.7 中存在)。我在1.8 发行说明中没有看到任何关于其删除的内容...有谁知道该功能的现代替代品是什么?

4

4 回答 4

9

目前尚不清楚为什么在 1.8 中删除了该功能,但现代替代品似乎只是重新发明了那个轮子:

from django.apps import apps
from django.contrib.contenttypes.management import update_contenttypes

def update_all_contenttypes(**kwargs):
    for app_config in apps.get_app_configs():
        update_contenttypes(app_config, **kwargs)
于 2015-04-09T22:37:17.457 回答
2

似乎 django 团队已经删除了 update_contenttypes 函数,但没有在发行说明中提及,因为它不是一个记录在案的公共 API。(正如这里所说:https ://code.djangoproject.com/ticket/28092 )

现在您可以使用新函数 create_contenttypes,如您在此处看到的: https ://github.com/django/django/commit/6a2af01452966d10155b720f4f5e7b09c7e3e419

于 2018-04-27T08:22:56.217 回答
0
  • 转到系统中“django.contrib.contenttypes”的位置(检查 python 的“site-packages”文件夹)
  • 打开 app.py(您可以在终端窗口中使用 vi app.py)
  • 将“update_contenttypes”替换为“create_contenttypes”
  • 保存文件('ESC'、':' 和 'wq' - 在 vi​​ 编辑器中)

然后尝试运行服务器

于 2021-01-19T12:59:11.107 回答
-1

创建一个虚拟环境,错误就会消失。

在这里找到如何创建 virtual_env:

于 2021-11-21T09:14:36.250 回答