Pap*_*urf 2 python django python-2.7 python-3.x
我有一个用 1.8 构建的大型 django 项目,包含大约 14 个应用程序和大量依赖项。
我已经很清楚如何将 2.7 代码更新到 3.6,或者可能只是使其与两者兼容,但是,我不确定重构/升级 django 的最佳实践和最有效的方法是什么框架从1.8升级到2.0。
请记住这数千行代码,因此工作效率至关重要。
预先感谢所有建议!
首先,您应该更新所有包以支持 python\n3.6 和 Django 2.0。
\n在你的所有中,urls.py你应该将所有url功能更改为path或re_path。
url(\'some/\', Create.as_view()) # old version
path(\'some/\', Create.as_view()) # new version
namespace如果您在 main 中使用,urls.py则应该将 app_name 添加到每个应用程序的urls.py.
app_name = \xe2\x80\x98app-name\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\nis_authenticated()并将其各处更改为is_authenticated. 它现在是一个属性,而不是一个方法。对 执行相同操作from django.core.urlresolvers import reverse,将其替换为from django.urls import reverse。ForeignKey模型字段都必须有一个on_delete参数。像这样:on_delete=models.CASCADE on_delete=models.DO_NOTHING on_delete=models.SET_NULL
然后进行迁移:
\npython manage.py makemigrations\npython manage.py migrate\nRun Code Online (Sandbox Code Playgroud)\n接下来,settings.py您需要将您的更改MIDDLEWARE_CLASSES为MIDDLEWAR\n然后更新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。所以你必须导入它
from django.utils.deprecation import MiddlewareMixin
查看官方文档以获取更多信息。下次先尝试做一下。
\n| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |