ImportError: cannot import name 'FieldDoesNotExist' from 'django.db.models' - django-advanced-filters

Tried to install the package with all requirements and following the steps described in README resulted in the following error when migrating:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "<env_dir>/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "<env_dir>/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "<env_dir>/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "<env_dir>/lib/python3.8/site-packages/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "<env_dir>/lib/python3.8/site-packages/django/contrib/admin/apps.py", line 24, in ready
    self.module.autodiscover()
  File "<env_dir>/lib/python3.8/site-packages/django/contrib/admin/__init__.py", line 24, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "<env_dir>/lib/python3.8/site-packages/django/utils/module_loading.py", line 47, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<env_dir>/lib/python3.8/site-packages/advanced_filters/admin.py", line 10, in <module>
    from .forms import AdvancedFilterForm
  File "<env_dir>/lib/python3.8/site-packages/advanced_filters/forms.py", line 13, in <module>
    from django.db.models import Q, FieldDoesNotExist
ImportError: cannot import name 'FieldDoesNotExist' from 'django.db.models' (<env_dir>/lib/python3.8/site-packages/django/db/models/__init__.py)

Steps: 1-) pip install django-advanced-filters Output:

Collecting django-advanced-filters
  Downloading django_advanced_filters-1.2.0-py3-none-any.whl (68 kB)
     |████████████████████████████████| 68 kB 704 kB/s 
Collecting django-braces<1.14.0,>=1.4.0
  Downloading django_braces-1.13.0-py2.py3-none-any.whl (15 kB)
Collecting simplejson<4,>=3.6.5
  Downloading simplejson-3.17.2-cp38-cp38-manylinux2010_x86_64.whl (137 kB)
     |████████████████████████████████| 137 kB 2.3 MB/s 
Installing collected packages: django-braces, simplejson, django-advanced-filters
Successfully installed django-advanced-filters-1.2.0 django-braces-1.13.0 simplejson-3.17.2

2-) added django-advanced-filters to projects settings.py; 3-) python manage.py makemigrations Output:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "<env_dir>/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "<env_dir>/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "<env_dir>/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "<env_dir>/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "<env_dir>/lib/python3.8/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<env_dir>/lib/python3.8/site-packages/advanced_filters/models.py", line 6, in <module>
    from .q_serializer import QSerializer
  File "<env_dir>/lib/python3.8/site-packages/advanced_filters/q_serializer.py", line 6, in <module>
    import six
ModuleNotFoundError: No module named 'six'

4-) pip install six Output:

Collecting six
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six
Successfully installed six-1.15.0

5-) added six to projects settings.py; 6-) python manage.py makemigrations and python manage.py migrate outputs the first described exception. 7-) added simplejson to projects settings.py; 8-) python manage.py makemigrations and python manage.py migrate also outputs the first described exception. 9-) removed six and simplejson from projects settings.py; 10-) python manage.py makemigrations and python manage.py migrate also outputs the first described exception.

Asked Sep 27 '21 07:09
avatar pythaqua
pythaqua

6 Answer:

Hello! Exception ImportError: cannot import name 'FieldDoesNotExist' from 'django.db.models, I decided by installing the last commit from this repository pip install -U https://github.com/modlinltd/django-advanced-filters/archive/3fc6b964c48c38fff6169f55f2c26325aa926dfb.zip.

1
Answered Oct 22 '20 at 15:38
avatar  of ddddsderftgyh
ddddsderftgyh

There was another exception ImportError: cannot import name 'six' from 'django.utils' Which is fixed in the pull request to the django-braces repository And this can also be fixed by installing a commit pip install -U https://github.com/galuszkak/django-braces/archive/5c6604123eaa73f53875c5dce5843a6598b7b52c.zip

1
Answered Oct 22 '20 at 15:43
avatar  of ddddsderftgyh
ddddsderftgyh

Thanks for looking into this @holgerco! @pythaqua and @daveusa31 can you confirm that you are using Django 3.1?

While we don't yet support 3.1 (or 3.2-dev), PRs are always super welcome 🙇

1
Answered Oct 31 '20 at 08:42
avatar  of asfaltboy
asfaltboy

Thanks for looking into this @holgerco! @pythaqua and @daveusa31 can you confirm that you are using Django 3.1?

While we don't yet support 3.1 (or 3.2-dev), PRs are always super welcome 🙇

Yes, I used 3.1

1
Answered Nov 01 '20 at 17:41
avatar  of ddddsderftgyh
ddddsderftgyh

Thanks for looking into this @holgerco! @pythaqua and @daveusa31 can you confirm that you are using Django 3.1?

While we don't yet support 3.1 (or 3.2-dev), PRs are always super welcome bow

Hi there! Confirming Django 3.1.2 here. Thanks for the advices.

1
Answered Nov 03 '20 at 01:31
avatar  of pythaqua
pythaqua

Thanks for looking into this @holgerco! @pythaqua and @daveusa31 can you confirm that you are using Django 3.1?

While we don't yet support 3.1 (or 3.2-dev), PRs are always super welcome bow

Perhaps the README.md requirements should be updated in this regard, right?

1
Answered Nov 03 '20 at 01:41
avatar  of pythaqua
pythaqua