Django-storages[google] - Ошибка атрибута ключа хранилища Staticfiles

Я пытаюсь настроить Django (5.0.4) на использование Google Cloud S3 в качестве файлового хранилища с помощью django-stores.

Вот как выглядит моя конфигурация settings.py для хранения объектов:

from google.oauth2.service_account import Credentials

STORAGES = {
    "default": {
        "BACKEND": "storages.backends.gcloud.GoogleCloudStorage",
        "OPTIONS": {
            "GS_BUCKET_NAME": "BUCKET",
            "GS_PROJECT_ID": "PROJECT",
            "GS_CREDENTIALS": Credentials.from_service_account_file("service-account.json"),
        },
    },
    "staticfiles": "storages.backends.gcloud.GoogleCloudStorage"
}

После выполнения python manage.py collectstatic я получаю следующую ошибку AttributeError

Traceback (most recent call last):
  File "/home/victor/BmLabs/site/manage.py", line 22, in <module>
    main()
  File "/home/victor/BmLabs/site/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/victor/.pyenv/versions/bmlabs/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/home/victor/.pyenv/versions/bmlabs/lib/python3.12/site-packages/django/core/management/__init__.py", line 382, in execute
    settings.INSTALLED_APPS
  File "/home/victor/.pyenv/versions/bmlabs/lib/python3.12/site-packages/django/conf/__init__.py", line 89, in __getattr__
    self._setup(name)
  File "/home/victor/.pyenv/versions/bmlabs/lib/python3.12/site-packages/django/conf/__init__.py", line 76, in _setup
    self._wrapped = Settings(settings_module)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/victor/.pyenv/versions/bmlabs/lib/python3.12/site-packages/django/conf/__init__.py", line 262, in __init__
    self.STORAGES.get(STATICFILES_STORAGE_ALIAS, {}).get("BACKEND"),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'get'

В соответствии с руководством <2>> я установил клавишу staticfiles на storages.backends.gcloud.GoogleCloudStorage.

В старых версиях Django существуют независимые переменные верхнего уровня DEFAULT_FILE_STORAGE и/или STATICFILES_STORAGE, которые принимают одну строку.

В современных версиях Django есть STORAGES, который требует диктант диктов с ключом BACKEND. Пусть конфигурация хранилища staticfiles выглядит так же, как и конфигурация default, а не просто как одна строка.

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