2017-04-22 65 views
1

我从Django的1.8.3升级旧的Django项目到目前Django的1.11,但要谨慎,我升级到Django的沿途各主要版本,这样我就可以找到错误&弃用,并采取之前解决这些问题下一步。 (我近两年没有触及过这个代码,所以我有点生疏;请原谅我,如果我犯了一个简单的错误。)Django的1.9.13抱怨SubfieldBase已过时,但我不使用它。如何解决?

我第一次升级到Django 1.9.13(最后1.10之前),当我manage.py runserver,我得到这个错误:

/Users/mboszko/.virtualenvs/opticaldev/lib/python2.7/site-packages/django/utils/six.py:808: RemovedInDjango110Warning: SubfieldBase has been deprecated. Use Field.from_db_value instead.

return meta(name, bases, d)

如果我读这个错误的权利,该错误的six定制版本的Django嵌入茎。我已搜查我的代码,我似乎没有在自己的代码中使用SubfieldBase任何地方。 (我也用google搜索了一下,对于six中的这个特殊错误我没有太大的成功。)

这只是一种情况,我应该升级到Django 1.10,并且该包中的新版本six将是兼容的,或者我有什么需要在升级之前自行解决的吗?

回答

1

Ahaaaa。没有什么比发布你的问题慢跑的想法,导致你的答案。

我意识到我应该深入挖掘错误:

$ python -Werror manage.py runserver 

该栈跟踪中,我得到呈现出一行:

File "/Users/mboszko/.virtualenvs/opticaldev/lib/python2.7/site-packages/django_date_extensions/fields.py", line 99, in

class ApproximateDateField(with_metaclass(models.SubfieldBase, models.CharField)):

因此,使用SubfieldBase实际上是一个包内,我已经安装了,django-date-extensions。这是在我的virtualenv 1.1.0,有一次我做pip install --upgrade django-date-extensions,使其达到2.0,错误消失。

固定!

相关问题