我正在开发一个使用旧版本 django 创建的 django 项目。我的环境是为最新的 django 版本(1.11.4)设置的。
当我尝试 python manage.py runserver
,我明白了:
Unhandled exception in thread started by Traceback (most recent call last): File
"/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py",
line 117, in inner_run
autoreload.raise_last_exception() File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py",
line 251, in raise_last_exception
six.reraise(*_exception) File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py",
line 228, in wrapper
fn(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 27,
in setup
apps.populate(settings.INSTALLED_APPS) File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line
108, in populate
app_config.import_models() File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line
202, in 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
"/home/ahmedn1/Documents/Paymob/wallet_executive_panel-master-c109bd6fe9cd1bf793c11a5c2e97d18a1887c3ba/accounts/models.py", line 8, in
import timedelta File "/usr/local/lib/python2.7/dist-packages/timedelta/__init__.py", line
11, in
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 仍然存在问题。
有什么想法可以解决这个问题吗?
最佳答案
django-timedelta-field 包不适用于 Django 1.10+。来自 django-timedelta-field repo :
If you are using Django 1.8 or greater (and you really should be), then you should use the included
DurationField()
instead of this.This field does not work with Django 1.10, and will probably not be updated to fix the issue(s).
以下是弃用
SubFieldBase
的解释来自 1.8 release notes .
关于Django 属性错误 : 'module' object has no attribute 'SubfieldBase' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45547215/