一个django应用程序,帮助django升级。

django_seven的Python项目详细描述


https://travis-ci.org/iwoca/django-seven.svg?branch=develop

帮助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']

[在繁重的开发/设计选择下]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么