Django使用models.Field对象更新对象

问题描述

我在Django模型中有数十个字段。

class Question(models.Model):
op1 = models.CharField(verbose_name="Option 1",max_length=500,null=True,blank=True)
op2 = models.CharField(verbose_name="Option 2",blank=True)
op3 = models.CharField(verbose_name="Option 3",blank=True)
....

我想写一个函数

def update_ith_option_of_question( q,i,val):
     op = d._meta.get_field('op'+str(i))
     # I want to save val in field op of object q

如何编写以上功能?

解决方法

使用Python的setattr

def update_ith_option_of_question(q,i,val):
    setattr(q,f'op{i}',val)
    q.save()

此外,使用f''字符串进行格式化更容易理解。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...