Путь к базе данных django: нет неподдерживаемого типа опперанда

В файле django settings.py база данных по умолчанию :

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

Но когда я делаю в python a={'a':'a'/'b'}, я получаю ошибку TypeError: unsupported operand type(s) for /: 'str' и 'str'. Почему эта ошибка не отображается в django?

Я хотел бы определить другой путь для моей базы данных, в подпапке, чтобы django автоматически создал подпапку и базу данных sqlite... как я могу это сделать?

спасибо

Но когда я делаю в python a={'a':'a'/'b'}, я получаю ошибку TypeError: unsupported operand type(s) for /: 'str' and 'str'. Почему эта ошибка не появляется в django?

Поскольку BASE_DIR - это не string, а Path объект [Python-doc]. Для этого объекта определен метод __div__, и он использует some_path / 'foo.sqlite3' для соединения пути в левой части с правой строкой. Действительно, например:

>>> Path('/etc') / 'foo' / 'bar.data'
PosixPath('/etc/foo/bar.data')

Я хотел бы определить другой путь для моей базы данных, в подпапке, чтобы django автоматически создал подпапку и базу данных sqlite... как я могу это сделать?

Вы можете указать другой путь, например, с:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'subdir' / 'db.sqlite3',
    }
}
Вернуться на верх