You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用django-allauth时,如何让Django后台显示Sites模块?

解决Django Admin中看不到Sites模块的问题

Sites模块是Django核心组件django.contrib.sites的一部分,django-allauth依赖它处理站点相关逻辑(比如注册邮件里的域名)。按以下步骤操作即可解决:

  1. 确认django.contrib.sites已加入INSTALLED_APPS
    打开项目根目录的settings.py,检查INSTALLED_APPS列表是否包含'django.contrib.sites'。如果没有,添加到列表中:

    INSTALLED_APPS = [
        # 其他已有的应用...
        'django.contrib.sites',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        # 其他allauth相关应用...
    ]
    
  2. 配置SITE_ID常量
    在settings.py中添加或确保存在SITE_ID配置,值设为1(Django默认站点的ID):

    SITE_ID = 1
    
  3. 执行数据库迁移
    django.contrib.sites需要对应的数据库表支持,运行迁移命令创建或更新表:

    python manage.py migrate
    
  4. 重启服务器并刷新Admin页面
    关闭当前的开发服务器进程,重新启动:

    python manage.py runserver
    

    再次访问127.0.0.1:8000/admin,就能看到Sites模块出现在页面中。

  5. 修改站点域名
    进入Sites模块,默认会有一条example.com的站点记录,修改它的域名和显示名称为你需要的内容(比如127.0.0.1:8000或生产环境域名),保存后django-allauth发送的邮件就会使用新域名。


内容的提问来源于stack exchange,提问作者m_abbott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:05:46