Django-CMS : Неожиданный аргумент ключевого слова 'providing_args'

Я установил ванильный django-cms на новый сервер. Я установил все требования. Все шло хорошо, вплоть до того момента, когда я хотел мигрировать на базу данных (Postgres).

Вот что я сделал :

  1. Tried reinstalling and installing it all again. Didn't change it.
  2. Used google to try and find people with the same error.
  3. Try editing the signals file on which the error(shown below) fires, but that meant rewriting it all, which still made it unresponsive.

Traceback:

  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/websites/fl/flvenv/lib/python3.8/site-packages/django/core/management/_                                                                                                                                                             _init__.py", line 425, in execute_from_command_line
    utility.execute()
  File "/websites/fl/flvenv/lib/python3.8/site-packages/django/core/management/_                                                                                                                                                             _init__.py", line 401, in execute
    django.setup()
  File "/websites/fl/flvenv/lib/python3.8/site-packages/django/__init__.py", lin                                                                                                                                                             e 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/websites/fl/flvenv/lib/python3.8/site-packages/django/apps/registry.py"                                                                                                                                                             , line 114, in populate
    app_config.import_models()
  File "/websites/fl/flvenv/lib/python3.8/site-packages/django/apps/config.py",                                                                                                                                                              line 300, 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 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/websites/fl/flvenv/lib/python3.8/site-packages/cms/models/__init__.py",                                                                                                                                                              line 12, in <module>
    from cms import signals as s_import  # nopyflakes
  File "/websites/fl/flvenv/lib/python3.8/site-packages/cms/signals/__init__.py"                                                                                                                                                             , line 16, in <module>
    page_moved = Signal(providing_args=["instance"])
TypeError: __init__() got an unexpected keyword argument 'providing_args'

У кого-нибудь есть идеи? Я что-то упустил. Спасибо за ваше время!

Аргумент providing_args для django.dispatch.Signal удален. Необходимо найти новые решения.

Я нашел ответ на эту проблему. Если вы посмотрите на документацию по Django. Это был Django от 2.0 до 3.0.

Делать раньше :

pizza_done = django.dispatch.Signal(providing_args = ['toppings'])

теперь это:

Defining signals

All signals are django.dispatch.Signal instances.

For example:

import django.dispatch

pizza_done = django.dispatch.Signal()
This declares a pizza_done signal.

Источник: https://docs.djangoproject.com/en/4.0/topics/signals/

Обновление django-cors-headers на python -m pip install -U django-cors-headers решает эту проблему.

Вернуться на верх