Ahmedn1
Ahmedn1

Reputation: 646

Django AttributeError: 'module' object has no attribute 'SubfieldBase'

I'm working on an django project that was created using an older version of django. My environment is set up for the latest django version (1.11.4). when I try python manage.py runserver, I get this:

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'

So, it seems the problem is with the django-timedeltafield package. I have the latest (0.7.10) version of that package. So, I don't understand why it still has an issue with the deprecated SubfieldBase.

Any ideas how I might solve this issue?

Upvotes: 2

Views: 7271

Answers (2)

Priyal Trivedi
Priyal Trivedi

Reputation: 36

This issue occurred when the Django version got upgrade due to a package install. You might want to run 'pip install -r requirements.txt' which will install the Django version that is compatible with your exisiting project.

So try , pip install -r requirements.txt

Let me know if it works for you as well.

Upvotes: 0

Alasdair
Alasdair

Reputation: 309019

The django-timedelta-field package does not work with Django 1.10+. From the 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).

Here's the explanation of the deprecation of SubFieldBase from the 1.8 release notes.

Upvotes: 3

Related Questions