最近我潜入了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 = ('...','....')
答案 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版本。现在不支持所有早期版本,并且不会收到安全修复程序。