安装django-cryptography后触发LookupError:无'admin'标签的已安装应用
排查
LookupError: No installed app with label 'admin' 问题步骤 1. 检查 INSTALLED_APPS 配置
确保 django.contrib.admin 明确列在 settings.py 的 INSTALLED_APPS 列表中,且顺序优先于自定义应用:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 你的自定义应用 'your_app_name', ]
2. 验证根 urls.py 的 admin 路由配置
确认项目根 urls.py 中正确配置了 admin 路由,无拼写错误:
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), # 其他自定义路由 ]
3. 排查 django-cryptography 对 admin 的影响
检查是否误将 admin 内置模型纳入加密范围,比如是否在自定义加密基类时,错误让 admin 相关模型继承了该类;或者在 settings.py 中配置加密选项时,干扰了 admin 应用的正常加载逻辑。
4. 清理缓存并重启服务
- 执行命令清理 Django 缓存:
python manage.py clearcache - 完全关闭开发服务器后重新启动,确保配置更改生效
5. 检查依赖版本兼容性
用 pip list 查看虚拟环境中 Django 和 django-cryptography 的版本,确认二者版本兼容(比如 Django 4.x 需搭配对应稳定版的 django-cryptography,避免跨版本冲突导致 admin 加载失败)。
6. 重置迁移文件
如果之前的迁移操作有异常,删除自定义应用下 migrations 文件夹内的所有文件(保留 __init__.py),然后重新执行:
python manage.py makemigrations python manage.py migrate
内容的提问来源于stack exchange,提问作者Adamu Abdulkarim Dee
相关产品推荐
相关产品推荐

