Django 解析模型内的外键属性';是什么意思?

Django 解析模型内的外键属性';是什么意思?,django,django-models,Django,Django Models,在我的ModelForm的save()方法中,我正在访问self.changed_数据,我希望执行以下操作: changes_moderated_dict.update(dict( [(i, staff.profile.user.__dict__[i]) for i in changed_data if i in staff.profile.user.__dict__])) 如果在已更改的数据中找到密钥,则会使用staff.profile.user密钥/值对更新已

在我的ModelForm的save()方法中,我正在访问self.changed_数据,我希望执行以下操作:

changes_moderated_dict.update(dict(
    [(i, staff.profile.user.__dict__[i]) 
    for i in changed_data 
    if i in  staff.profile.user.__dict__]))
如果在已更改的数据中找到密钥,则会使用staff.profile.user密钥/值对更新已更改的密钥。changes_-moderated_dict基本上用于在表单中存储对该特定模型所做的所有字段更改(用于以后的处理和序列化)

只要staff.profile.user不是外键关系,这种情况下,文件名有一个_id后缀,不会与self.changed_数据字段名匹配,该字段名是模型中显示的属性名(没有_id)


有没有办法将模型的dict中的外键属性解析为它的实际名称,以便上述方法仍然有效

我不确定访问
用户的目的是什么,但是如果要检查模型字段,可以执行以下操作:

u = staff.profile.user
model_field_names = map(lambda f:f.name, u._meta.fields)
changes_moderated_dict.update(dict(
    [(i, getattr(u, i, None))
    for i in changed_data
    if i in model_field_names]))