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

如何正确将大写变量传入Django settings.configure()解决大写要求错误

解决Django settings.configure()的大写配置项错误

错误原因

Django要求所有配置项的名称必须大写,你代码中循环调用settings.configure(item=func(item))时,用了小写的item作为配置项名称,违反了这个规则,因此触发TypeError: Setting 'item' must be uppercase错误。

另外需要注意:settings.configure()应该只调用一次,循环中多次调用会覆盖之前的配置,不符合Django的使用规范。

正确写法

情况1:items中是大写的配置项名称

如果你的items列表存储的是DEBUG、SECRET_KEY这类大写的合法配置项名称,先将所有配置键值对存入字典,再一次性传递给configure():

from django.conf import settings

def func(i):
    # 编写逻辑,返回对应配置项的值
    # 示例:根据配置名返回对应值
    if i == "DEBUG":
        return True
    elif i == "SECRET_KEY":
        return "your-secret-key-here"
    # 其他配置项的处理逻辑

# 构建配置字典
settings_config = {}
for item in items:
    settings_config[item] = func(item)

# 一次性配置所有项
settings.configure(**settings_config)

情况2:items中是小写的配置项名称

如果items里是小写名称,需要先将其转为大写,再构建配置字典:

from django.conf import settings

def func(i):
    # 编写逻辑,返回对应配置项的值

settings_config = {}
for item in items:
    # 将配置项名称转为大写
    setting_name = item.upper()
    settings_config[setting_name] = func(item)

settings.configure(**settings_config)

关键说明

  • 使用**settings_config将字典解包为关键字参数,确保每个配置项名称都是大写,符合Django的要求。
  • 只调用一次settings.configure(),避免重复配置导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:20:43