Python/Django Ошибка типа 'WindowsPath' в Django Rest Framework (DRF)

При запуске проекта Django в виртуальной среде я продолжаю получать ошибку 'TypeError', описанную ниже. В чем может быть проблема? Заранее спасибо!


  File "D:\Studio\Python\REST\elections\env\lib\site-packages\django\db\backends\sqlite3\base.py", line 190, in close
    if not self.is_in_memory_db():
  File "D:\Studio\Python\REST\elections\env\lib\site-packages\django\db\backends\sqlite3\base.py", line 287, in is_in_memory_db
    return self.creation.is_in_memory_db(self.settings_dict['NAME'])
  File "D:\Studio\Python\REST\elections\env\lib\site-packages\django\db\backends\sqlite3\creation.py", line 13, in is_in_memory_db
    return database_name == ':memory:' or 'mode=memory' in database_name
TypeError: argument of type 'WindowsPath' is not iterable

Вот код настроек для баз данных:


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


BASE_DIR / 'db.sqlite3' означает, что вы делите BASE_DIR на строку db.sqlite3, что не имеет никакого смысла. Вместо этого используйте следующее:

'NAME': BASE_DIR + '/db.sqlite3',

и все будет готово. В качестве альтернативы вы можете использовать:

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

Очевидно, что вам потребуется import os в вашем файле настроек.

Похоже, что параметр DATABASES - NAME ожидает строку, а не объект Path.

В настройках попробуйте изменить эту строку

'NAME': BASE_DIR / 'db.sqlite3',

to

'NAME': str(BASE_DIR / 'db.sqlite3'),

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