Django3邮件验证适配:如何设置SITE_ID为站点主键pk值
Django SITE_ID 配置操作步骤
- 第一步:确认基础配置
先检查settings.py的INSTALLED_APPS中已添加django.contrib.sites,如果是后添加的,需要先执行迁移命令:python manage.py migrate - 第二步:登录Django后台
如果还没有创建超级管理员,先执行命令创建:python manage.py createsuperuser
启动项目服务后,访问/admin路径,输入账号密码登录后台。 - 第三步:修改/添加站点信息
进入站点管理路径/admin/sites/site/,默认会存在一条域名为example.com的记录:- 可以直接点击这条记录进入编辑页,把
Domain name修改为你的实际域名,本地开发环境填127.0.0.1:8000,线上环境填你的正式访问域名,Display name可填写自定义的站点名称,修改后保存。 - 也可以点击右上角「新增」按钮,添加一条新的站点记录,填写对应域名和名称后保存。
- 可以直接点击这条记录进入编辑页,把
- 第四步:查询目标站点的PK值
有两种查询方式可选:- 后台页面查看:进入对应站点的编辑页时,浏览器地址栏的URL格式为
/admin/sites/site/[数字]/change/,其中的数字就是该站点的PK值。 - Shell查询:执行命令进入Django交互环境:
python manage.py shell
输入以下代码查询所有站点的ID和对应域名:
从输出结果中找到你需要的站点对应的from django.contrib.sites.models import Site print(Site.objects.all().values('id', 'domain'))id值,就是该站点的PK。
- 后台页面查看:进入对应站点的编辑页时,浏览器地址栏的URL格式为
- 第五步:修改SITE_ID配置
打开settings.py,找到SITE_ID配置项,将值修改为你查询到的PK值即可,例如查询到的PK为2,就修改为:SITE_ID = 2
修改后重启项目服务,配置就会生效,之后get_current_site(request)就会返回你配置的站点域名,激活链接也会生成正确的地址。
内容的提问来源于stack exchange,提问作者Prateek p
相关产品推荐
相关产品推荐

