【问题标题】:Django update an object using models.Field objectDjango 使用 models.Field 对象更新对象
【发布时间】:2020-12-10 12:47:28
【问题描述】:

我在一个 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",max_length=500,null=True,blank=True)
op3 = models.CharField(verbose_name="Option 3",max_length=500,null=True,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

上面的函数怎么写?

【问题讨论】:

    标签: django model field


    【解决方案1】:

    使用 Python 的setattr

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

    此外,使用f'' 字符串进行格式化更具可读性。

    【讨论】:

    • 工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多