Mat*_* S. 31 django django-models
这似乎应该是死的简单,所以我必须遗漏一些东西.我只想按名称设置模型实例中字段的值.说我有:
class Foo(Model):
bar = CharField()
f = Foo()
Run Code Online (Sandbox Code Playgroud)
我想按名称设置bar的值,而不是通过访问该字段.所以类似于:
f.fields['bar'] = 'BAR"
Run Code Online (Sandbox Code Playgroud)
代替
f.bar = 'BAR'
Run Code Online (Sandbox Code Playgroud)
我已经尝试过setattr,但它不会在数据库中保留该值.我也尝试过_meta.fields,但在此过程中遇到了各种错误.
Pau*_*lan 65
如果通过修改值setattr,则需要记住在修改模型后保存模型.我曾经被咬过去,我改变了价值但忘了保存模型,并得到了相同的结果.
setattr(f, 'bar', 'BAR')
f.save()
Run Code Online (Sandbox Code Playgroud)
Joe*_*way 17
我们可能需要查看更多代码.
setattr(f, 'bar', 'BAR')
Run Code Online (Sandbox Code Playgroud)
应该工作,因为这是Django在内部做的.
确保你也称为"保存".