Django:'pythonmanage.pyrunserver'返回'TypeError:'WindowsPath'类型的对象没有len()'

我创建了一个新的 django proejct,我所做的唯一修改是设置,将数据库从 sqlite 更改为 postgres:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': BASE_DIR / 'yachtdrop',
        'USER': 'postgres',
        'PASSWORD': 'passsword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

我使用pipenv来管理我的虚拟环境,我的pipfile如下:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
django = "*"
requests = "*"
flask = "*"
psycopg2-binary = "*"

[dev-packages]

[requires]
python_version = "3.9"

当我编写命令“python manage.py runserver”时,系统返回“TypeError: object of type 'WindowsPath' has no len()”,我不明白为什么会发生这种情况。我在 Windows 上运行它。我最近重置了我的 Windows 系统并全新安装了 python、pipenv 和 postgres。

如果有人能在这里帮助我,那就太好了。谢谢!

回答

Django 默认在基目录中创建 db.sqllite3 文件,但其他数据库不需要在名称中使用 'BASE_DIR' 常量。它将转到主机并查找您提供的 db 文件名。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'yachtdrop',
        'USER': 'postgres',
        'PASSWORD': 'passsword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

  • Thanks @christian. Noted and edited my comment.

以上是Django:'pythonmanage.pyrunserver'返回'TypeError:'WindowsPath'类型的对象没有len()'的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>