gpt4 book ai didi

python - 将 Django 1.8 项目代码更新/升级到 Django 2.0

转载 作者:行者123 更新时间:2023-12-02 20:15:37 24 4
gpt4 key购买 nike

我有一个用 1.8 构建的大型 django 项目,包含大约 14 个应用程序和大量依赖项。

我已经很清楚如何将 2.7 代码更新到 3.6,或者可能只是使其与两者兼容,但是,我不确定重构的最佳实践和最有效的方法是什么/将django框架从1.8升级到2.0。

请记住这数千行代码,因此工作效率至关重要。

预先感谢您的所有建议!

最佳答案

  1. 首先,您应该更新所有包以支持 python3.6 和 Django 2.0。

  2. 在所有 urls.py 中,您应该将所有 url 函数更改为 pathre_path.

    url('some/', Create.as_view()) # 旧版本

    path('some/', Create.as_view()) # 新版本

如果您在主 urls.py 中使用命名空间,则应将 app_name 添加到每个应用的 urls.py 中。

app_name = ‘app-name’
  • 在您的项目中搜索 is_authenticated() 并将其各处更改为 is_authenticated。它现在是一个属性,而不是一个方法。对 from django.core.urlresolvers import reverse 执行相同操作,将其替换为 from django.urls importverse
  • 现在,每个 ForeignKey 模型字段都必须有一个 on_delete 参数。像这样:
  • on_delete=models.CASCADE on_delete=models.DO_NOTHING on_delete=models.SET_NULL

    Check the official documentation on this

    然后进行迁移:

    python manage.py makemigrations
    python manage.py migrate
  • 接下来,在 settings.py 中,您需要将 MIDDLEWARE_CLASSES 更改为 MIDDLEWAR然后更新 MIDDLEWAR 以匹配此:

    'django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','django.middleware.security.SecurityMiddleware'

  • 如果您在项目中使用自己的中间件,则应该从 MiddlewareMixin 继承,而不是从 object 继承。所以你必须导入它

    从 django.utils.deprecation 导入 MiddlewareMixin

  • <强> Check out官方文档以获取更多信息。下次尝试先这样做。

    关于python - 将 Django 1.8 项目代码更新/升级到 Django 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52467251/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com