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

Django中AppSettings对象无STORE_TOKENS属性的报错求助

解决方案

1. 确保app_settings是AppSettings类的实例

你需要在models.py中先实例化AppSettings类,而非直接使用类本身:

# models.py
from .app_settings import AppSettings

# 替换为你实际使用的前缀,比如你的设置前缀是'ALLAUTH_'就写这个
app_settings = AppSettings('ALLAUTH_')

如果之前你只是把类赋值给app_settings(比如app_settings = AppSettings),访问app_settings.STORE_TOKENS必然报错——因为@property装饰的是实例属性,类本身并不具备这个属性。

2. 检查导入是否正确

确认models.py中导入的AppSettings确实来自你定义的app_settings.py模块,避免误导入第三方库或其他模块的同名类。可以通过以下代码验证:

print(app_settings.__class__.__module__)

输出应为你的项目中app_settings.py所在的模块路径,比如myapp.app_settings。

3. 验证@property装饰器是否生效

在实例化app_settings后,打印实例的属性列表来确认STORE_TOKENS是否存在:

print(dir(app_settings))

如果输出包含STORE_TOKENS,说明属性存在,此时需要检查_setting方法内的逻辑是否有问题;如果不包含,则要确认类定义是否被正确加载。

4. 排查循环导入问题

如果models.py和app_settings.py存在循环导入(比如前者导入AppSettings,后者又导入models中的内容),会导致类定义未完全加载,无法识别@property属性。此时可以调整导入结构:

# 在models.py需要使用app_settings的方法内部导入
def some_method(self):
    from .app_settings import AppSettings
    app_settings = AppSettings('ALLAUTH_')
    if app_settings.STORE_TOKENS and self.token and self.token.app.pk:
        # 你的业务逻辑

延迟导入可以避免循环依赖导致的类加载异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:40:38