Django AttributeError:'module'对象没有属性'SubfieldBase'

时间:2017-08-07 12:42:59

标签: django python-2.7 ubuntu django-models

我正在使用旧版django创建的django项目。我的环境设置为最新的django版本(1.11.4)。 当我尝试python manage.py runserver时,我明白了:

  

Traceback启动的线程中的未处理异常(最近一次调用最后一次):文件

     

“的/ usr /本地/ LIB / python2.7 / DIST-包/ django的/ utils的/ autoreload.py”,   第228行,在包装器中

fn(*args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py",
     

第117行,在inner_run中

autoreload.raise_last_exception()   File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py",
     

第251行,在raise_last_exception

six.reraise(*_exception)   File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py",
     

第228行,在包装器中

fn(*args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 27,
     

在设置

apps.populate(settings.INSTALLED_APPS)   File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line
     

108,填充

app_config.import_models()   File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line
     

202,在import_models中

self.models_module = import_module(models_module_name)   File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)   File 
     

“/家/ ahmedn1 /文档/ Paymob / wallet_executive_panel-主c109bd6fe9cd1bf793c11a5c2e97d18a1887c3ba /账户/ models.py”,   第8行,

import timedelta   File "/usr/local/lib/python2.7/dist-packages/timedelta/__init__.py", line
     

11,在

from .fields import TimedeltaField   File "/usr/local/lib/python2.7/dist-packages/timedelta/fields.py", line 18,
     

in

class TimedeltaField(six.with_metaclass(models.SubfieldBase, models.Field)): AttributeError: 'module' object has no attribute
     

'SubfieldBase'

所以,似乎问题在于django-timedeltafield包。我有该软件包的最新版本(0.7.10)。所以,我不明白为什么它仍然存在已弃用的SubfieldBase的问题。

我有什么想法可以解决这个问题?

2 个答案:

答案 0 :(得分:2)

django-timedelta-field包不适用于Django 1.10+。来自django-timedelta-field回购:

  

如果您使用的是Django 1.8或更高版本(而且 应该),那么您应该使用包含的DurationField()代替此。

     

此字段不适用于Django 1.10,可能无法更新以解决问题。

以下是对1.8 release notesSubFieldBase弃用的解释。

答案 1 :(得分:0)

当Django版本由于安装软件包而升级时,会发生此问题。 您可能需要运行'pip install -r requirements.txt',它将安装与您现有项目兼容的Django版本。

因此,请尝试,点安装-r requirements.txt

让我知道它是否也对您有用。