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'),