ModelFormのsave()メソッドで、self.changed_dataにアクセスしていて、次のようなことをしたいと思います。
changes_moderated_dict.update(dict(
[(i, staff.profile.user.__dict__[i])
for i in changed_data
if i in staff.profile.user.__dict__]))
キーがchanged_dataで見つかった場合、changes_moderated_dictをstaff.profile.userキー/値のペアで更新します。Changes_moderated_dictは基本的に、この特定のモデルに対して行われたすべてのフィールド変更をフォーム内に格納するために使用されます(後の処理とシリアル化のため)。
これは、staff.profile.userが外部キー関係でない限り、すべて正常に機能します。この場合、ファイル名には_idサフィックスがあり、に表示される属性名であるself.changed_dataフィールド名と一致しません。モデル(_idなし)。
上記のメソッドが引き続き機能するように、モデルの__dict__内の外部キー属性を実際の名前に解決する方法はありますか?