我的项目依赖于OSS可重用的应用程序,该应用程序包含Django导入,在Django 1.10中已弃用:
from django.db.models.sql.aggregates import Aggregate
正在改为:
from django.db.models.aggregates import Aggregate
我们收到Django 1.9的警告,这将成为Django 1.10的错误。这阻碍了我们的升级,我想为应用程序提供修复,以便我们升级。
一种选择是修改setup.py中的要求,以便需要Django 1.10。但我确信我的贡献会被拒绝,因为它会为其他人打破。
为了保持向后兼容性,我可以将导入作为try/except
进行,但这会让人觉得很难。好像我需要在导入中做一些Django版本检查。我应该执行Django版本检查,它返回一个字符串,将其转换为浮点数,然后执行if version > x
?那也感觉很难过。
最佳做法是什么?实例
答案 0 :(得分:1)
Django有严格的向后兼容性政策。如果它提出了弃用警告,则新版本在1.9中已经。您应该在升级之前切换到它。