[Django]-Getting a typeError error in django project

5👍

It does seem NAME is being converted to pathlib.Path (WindowsPath) object instead of string which then cannot be used in Django in same way as os.path expects strings (Not 100% sure as did not investigate in depth)

So casting in string would be appropriate

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

2👍

Make sure you really execute your command in the venv (you should see (venv))

If you are then as @iklinac said, this should fixe your issue:

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

0👍

Also, for Django>=3.1, the path module is included in place of the os module. Therefore, use:

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

So, DB sqlite3 settings will look like this in settings.py.

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

Leave a comment