一个django应用程序,帮助django升级。
django_seven的Python项目详细描述
帮助Django升级的代码/工具集合。 这个包名是对python包“six”的引用,它有助于python 2和3之间的兼容性。
这个包的想法是分享一些从django在一个相当大的项目中从1.4升级到1.9的经验。 查看Django Upgrade talk了解更多详细信息。 django seven将在开头包含compat模块和不推荐使用的规则逻辑。
不推荐的规则
django管理命令check_deprecated_rules可用于检查项目是否“升级兼容”。
您应该首先将django_seven.deprecated_rules添加到INSTALLED_APPS:
INSTALLED_APPS = [ ... 'django_seven.deprecated_rules', ]
然后,您应该在设置文件中定义当前的django版本和要升级到的版本:
SEVEN_CURRENT_DJANGO_VERSION = '1.4' SEVEN_FUTURE_DJANGO_VERSION = '1.9'
然后为您的项目启动check_deprecated_rules管理命令:
$ ./manage.py check_deprecated_rules ./core/models.py 1601: models.BooleanField has to be initialised with default parameter, as implicit default has changed between Django 1.4 (False) and 1.6 (None). L6: boolean_field = models.BooleanField()
此命令将为您提供一个不受尊重的规则列表,其中包含修复这些规则的有用信息:
- 受影响的文件,
- 带有规则说明的规则编号,
- 行号和行号副本。
默认情况下,django-seven正在定义一些不推荐使用的规则,但您也可以在设置文件中定义您的规则。 您应该尊重规则字段:
DEPRECATED_RULES = [ { 'name': 'deprecated_django_local_flavor_module', 'message': 'Deprecated django.contrib.localflavor module (now third-party lib). Use localflavor instead.', 'regex': r'.*django\.contrib\.localflavor.*', 'number': '1602', 'should_be_fixed_in': '1.6', }, ]
您也可以使用django-seven并添加您的:
CUSTOM_RULES = [ # Your custom rules ] from django_seven.deprecated_rules.rules import DEPRECATED_RULES as SV_DEPRECATED_RULES DEPRECATED_RULES = SV_DEPRECATED_RULES + CUSTOM_RULES
您可以通过设置指定要从不推荐的规则搜索中排除的目录/文件:
SEVEN_EXCLUDED_DIRS = ['venv', '.git', 'frontend', 'static', 'docs'] SEVEN_EXCLUDED_SUB_PATHS = ['migrations'] SEVEN_EXCLUDED_SPECIFIC_FILE = ['my/specific/file.py'] SEVEN_EXCLUDED_FILE_EXTENSIONS = ['.pyc']
[在繁重的开发/设计选择下]