我正在循环查看一系列词汇并从dicts创建模型(期刊)。他们与研究员有很多关系。
每个字典都是这样的
{'abbreviation': 'Front. Artif. Intell. Appl.',
'journal_type': 'k',
'title': 'Frontiers in Artificial Intelligence and Applications'}
但是,这个列表中有重复项,这很好,我手动检查它们是否存在,如果它们存在,我不会为它创建一个新模型。
BUT。问题是,dicts列表中的条目具有重复,具有不同程度的缺失列。例如,
条目123
{'abbreviation': 'Front. Artif. Intell. Appl.',
'journal_type': 'k',
'title': 'Frontiers in Artificial Intelligence and Applications'}
条目124
{'abbreviation': 'Front. Artif. Intell. Appl.',
'issn':123,
'journal_type': 'k',
'title': 'Frontiers in Artificial Intelligence and Applications'}
如您所见,124比123更“完整”。
在123点,我已经从该哈希创建了日志对象。但是,我想从124更新相同 新字段的相同行(在这种情况下,使用issn更新行)< / p>
这样做的正确方法是什么? :)
答案 0 :(得分:1)
找到一个始终存在的列,在数据库中也可以认为是唯一的(考虑LogicalKey列)。
for entry in entries:
try:
record = Model.objects.get(logical_key = entry['logical_key')
for k,v in entry.items():
if record._meta.get_field(k) is None:
setattr(record,k,v)
record.save()
except:
Model.objects.create(field1=entry['field1'],...)