这看起来应该非常简单,所以我一定遗漏了一些东西。我只想按名称设置模型实例中字段的值。假设我有:
class Foo(Model):
bar = CharField()
f = Foo()
我想通过名称设置 bar 的值,而不是通过访问该字段。所以像这样:
f.fields['bar'] = 'BAR"
代替
f.bar = 'BAR'
我试过 setattr 但它不会将值保存在数据库中。我也尝试过 _meta.fields,但一路上遇到了各种错误。
最佳答案
如果通过setattr
修改值,修改后需要记得保存模型。过去我曾遇到过这样的问题:我更改了值但忘记保存模型,但得到了相同的结果。
setattr(f, 'bar', 'BAR')
f.save()
关于django - 如何按名称设置 Django 模型字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1545645/