Django admin报错:psycopg2.errors.UndefinedTable django_admin_log不存在
解决Django admin提示"django_admin_log does not exist"的方案
问题根源
这个错误是因为Django内置admin模块依赖的数据库表(包括django_admin_log)未被正确创建,大概率是迁移流程中出现了遗漏或异常。
分步解决办法
检查INSTALLED_APPS配置
打开项目的settings.py,确认django.contrib.admin在INSTALLED_APPS列表内,没有的话补充添加:INSTALLED_APPS = [ 'django.contrib.admin', # 其他你的应用及Django默认应用 ]重置迁移并重新执行
- 若使用SQLite,直接删除项目根目录的
db.sqlite3文件;若使用PostgreSQL,登录数据库删除对应库后重建。 - 删除所有应用下的
migrations文件夹(若有__init__.py可保留,也可全部删除)。 - 依次执行以下命令:
python manage.py makemigrations python manage.py migrate
- 若使用SQLite,直接删除项目根目录的
单独迁移admin应用
全量迁移无效时,单独对admin应用执行迁移:python manage.py migrate admin若提示无迁移可执行,先运行
python manage.py makemigrations admin生成admin的迁移文件,再执行上述迁移命令。重新创建超级用户
迁移完成后,重新生成超级用户:python manage.py createsuperuser之后尝试登录admin页面。
核对数据库连接信息
检查settings.py中的DATABASES配置,确保PostgreSQL的库名、用户名、密码、端口均正确,且数据库已创建、用户具备读写权限:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': '你的数据库名', 'USER': '数据库用户名', 'PASSWORD': '数据库密码', 'HOST': 'localhost', 'PORT': '5432', } }
内容的提问来源于stack exchange,提问作者Sam Schonenberg
相关产品推荐
相关产品推荐

