【问题标题】:How django fix the compatibility?django如何修复兼容性?
【发布时间】:2018-11-24 01:47:00
【问题描述】:

最近我在Django潜水,我想知道开发人员如何使不同的Django版本兼容?不谈变化的细节,只谈API的name和API的path

这是一个例子:

Django 1.10 之前settings.py

Django 提供 django.utils.deprecation.MiddlewareMixin 来轻松创建与MIDDLEWARE 和旧的MIDDLEWARE_CLASSES 兼容的中间件类。 Django 包含的所有中间件类都兼容这两种设置。

我尝试的是:

import django
if django.get_version() > '1.11.0':
    MIDDLEWARE= ('...','....')
else:
    MIDDLEWARE_CLASSES = ('...','....')

【问题讨论】:

    标签: django django-views django-settings


    【解决方案1】:

    Django 的弃用政策旨在让您一次支持多个版本的 Django。

    即使在 Django 1.10 中添加了 MIDDLEWARE,您仍然可以在 Django 1.0 和 1.11 中使用 MIDDLEWARE_CLASSES

    首先,您会使用MIDDLEWARE_CLASSES。这将允许您支持(例如)Django 1.8、1.9、1.10 和 1.11 LTS。

    然后,当您想要支持 Django 2.0 时,您将切换到 MIDDLEWARE,并放弃对 Django 1.10 及更早版本的支持,并且仅支持 Django 1.11 和 Django 2.0。

    如果您尝试保持对 Django 多个版本的支持,例如Django 1.8、Django 1.11 和 Django 2.0,那么这可能会导致更复杂的代码。请注意,Django 1.11 LTS 是 Django 支持的最旧版本。所有早期版本现在都不受支持,并且不会收到安全修复。

    【讨论】:

    • 谢谢!对我帮助很大!
    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多