启用Django Allauth验证码邮箱验证时,已配置mandatory仍报错求助
Django Allauth验证码邮箱验证报错排查
问题描述
配置Django Allauth使用验证码式邮箱验证替代常规URL验证时,出现如下报错:
ACCOUNT_EMAIL_VERFICATION_BY_CODE requires ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
但已在settings.py中添加了要求的配置:
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True ACCOUNT_EMAIL_VERIFICATION_BY_CODE_ENABLED = True ACCOUNT_EMAIL_VERIFICATION = "mandatory"
尝试开启社交账号验证未解决问题。
可能的解决办法
- 核对配置项拼写:报错信息里的
ACCOUNT_EMAIL_VERFICATION_BY_CODE存在拼写错误(缺少字母i,正确应为ACCOUNT_EMAIL_VERIFICATION_BY_CODE),先检查自己的settings.py中所有相关配置项的拼写是否准确,避免因笔误导致配置不生效。 - 确认配置实际生效:在项目启动时打印
settings.ACCOUNT_EMAIL_VERIFICATION的值,验证该配置是否确实被设置为"mandatory",有可能存在其他配置文件覆盖了当前设置的情况。 - 升级django-allauth版本:旧版本的django-allauth可能存在配置检测的bug,尝试升级到最新稳定版本,大概率能修复这类配置相关的问题。
- 排查自定义逻辑干扰:如果项目中有自定义的邮箱验证逻辑、信号处理器或扩展Allauth的代码,暂时禁用这些自定义部分,测试是否能正常运行,排除自定义代码的干扰。
内容的提问来源于stack exchange,提问作者xl3ehindTim
相关产品推荐
相关产品推荐

