django如何修复兼容性?

时间:2018-06-14 10:02:53

标签: django django-views django-settings

最近我潜入了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 = ('...','....')

1 个答案:

答案 0 :(得分: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版本。现在不支持所有早期版本,并且不会收到安全修复程序。