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

Django报错AttributeError: Settings无STRIPE_PUBLIC_KEY属性

Django 项目 Stripe 配置 AttributeError 排查修复方案

报错核心原因是Django配置对象中找不到代码引用的STRIPE_PUBLIC_KEY属性,按以下步骤排查修复即可:

注意:你虽然是在添加stripe.api_key = settings.STRIPE_SECRET_KEY代码行后触发报错,但报错指向缺失STRIPE_PUBLIC_KEY,说明项目中已有其他逻辑(比如支付页渲染、其他视图函数、上下文处理器)提前引用了Stripe公钥配置,不是你刚加的密钥赋值行本身拼写错误,不用在这行反复核对。

  • 检查项目settings.py顶层作用域是否定义了所需的Stripe配置项
    直接在settings.py文件中补上两个Stripe相关配置即可,测试阶段可以先填Stripe后台拿到的测试密钥:
    # Stripe 支付配置
    STRIPE_PUBLIC_KEY = "pk_test_xxx 替换为你的Stripe测试公钥"
    STRIPE_SECRET_KEY = "sk_test_xxx 替换为你的Stripe测试私钥"
    
    注意:生产环境不要把密钥硬编码在代码文件里,建议通过系统环境变量读取,避免密钥泄露。
  • 如果你用.env文件存储密钥,检查变量命名是否完全匹配
    比如.env里写的变量名是STRIPE_PUB_KEY,但代码里调用的是STRIPE_PUBLIC_KEY,或者大小写不一致,都会触发属性不存在的报错,两边变量名必须完全一致。
  • 改完配置后必须重启Django开发服务
    Django只会在启动时一次性加载settings配置,修改配置文件后,先按Ctrl+C终止当前运行的服务,再重新执行python manage.py runserver启动,新配置才会生效。
  • 多配置文件场景检查当前生效的settings文件
    如果你的项目拆分了开发/生产/测试多套settings配置,确认你把Stripe配置写到了当前启动服务指定的settings文件里,不要出现配置写到生产settings、本地启动用开发settings的情况。

配置完成后可以通过Django shell验证是否加载成功,在项目目录执行命令:

python manage.py shell

进入交互环境后依次执行以下代码,能正常打印出密钥值、不抛AttributeError就说明配置生效:

from django.conf import settings
print(settings.STRIPE_PUBLIC_KEY)
print(settings.STRIPE_SECRET_KEY)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:57:23