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

Django中如何使用动态字符串作为模型字段名赋值?

解决方法

直接用Python内置的setattr()函数就能实现你要的动态赋值逻辑,代码如下:

json_data = {"prefs":[1,2],"items":[2,3,4]}
mo = FormSelector.objects.last()
for key, value in json_data.items():
    # 可选:先判断key是否是模型的有效字段,避免赋值错误
    if hasattr(mo, key):
        setattr(mo, key, value)
# 记得保存修改到数据库
mo.save()

补充说明

  • setattr(obj, attr_name, value) 函数可以动态给对象obj设置名为attr_name的属性,值为value,效果完全等价于直接写obj.attr_name = value。
  • 加上hasattr(mo, key)的判断是为了防止json里出现模型不存在的字段名,导致赋值出错;如果你能保证json的键都是模型已有的字段,也可以去掉这个判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:38:09