これはとても単純なはずなので、何かが足りないに違いありません。モデルインスタンスのフィールドの値を名前で設定したいだけです。私が持っていると言う:
class Foo(Model):
bar = CharField()
f = Foo()
フィールドにアクセスするのではなく、名前でバーの値を設定したい。だから次のようなもの:
f.fields['bar'] = 'BAR"
の代わりに
f.bar = 'BAR'
Setattrを試しましたが、データベースの値が保持されません。また、_meta.fieldsを調べてみましたが、途中でさまざまなエラーが発生しました。
setattr
を介して値を変更する場合は、変更後にモデルを保存することを忘れないでください。過去に噛まれて値を変更したのですが、モデルを保存するのを忘れてしまい、同じ結果になりました。
setattr(f, 'bar', 'BAR')
f.save()
もっとコードを見なければならないかもしれません。
setattr(f, 'bar', 'BAR')
これはDjangoが内部的に行う方法です。
「保存」も呼び出していることを確認してください。