Django Admin面板访问异常:链接失效及Site匹配查询不存在错误求助
原因及解决方法
核心原因
这个错误本质是Django的django.contrib.sites框架找不到匹配的Site实例,Admin面板依赖该组件关联站点配置,缺失时就会抛出此异常。
具体解决步骤
1. 确认django.contrib.sites在INSTALLED_APPS中
打开项目根目录的settings.py,检查INSTALLED_APPS是否包含该应用:
INSTALLED_APPS = [ ... 'django.contrib.sites', ... ]
若未添加,直接将其加入列表。
2. 设置SITE_ID配置项
在settings.py中添加或指定SITE_ID:
SITE_ID = 1
该值对应数据库django_site表的id字段,默认初始数据的id为1。
3. 同步数据库生成Site数据
如果是首次配置,执行迁移命令生成django_site表并插入默认站点数据:
python manage.py migrate
若已执行过迁移但数据丢失,可通过以下方式恢复:
- 方式一:通过shell手动创建实例
运行python manage.py shell,执行代码:
from django.contrib.sites.models import Site Site.objects.create(domain='localhost:8000', name='localhost:8000')
- 方式二:加载初始数据文件
若项目有站点初始数据,运行:
python manage.py loaddata sites
4. 检查自定义Admin配置(可选)
如果自定义了Admin站点类,确保没有破坏默认的Site关联逻辑,比如不要遗漏site_header等依赖站点的配置项,或确保正确关联了Site实例。
内容的提问来源于stack exchange,提问作者mohammad Umer
相关产品推荐
相关产品推荐

