通过覆盖 import_obj,我能够访问新行数据和现有实例。
def import_obj(self, instance, row, dry_run):
super(RelationshipResource, self).import_obj(instance, row, dry_run)
for field in self.get_fields():
if isinstance(field.widget, widgets.ManyToManyWidget):
tags = []
for tag in instance.tagtag.all():
tags.append(tag.name)
tags.extend(row['tagtag'].split(',')) # concat existing and new tagtag list
row['tagtag'] = ', '.join(tags) #set as new import value
# continue to save_m2m
continue
self.import_field(field, instance, row)
但是,在导入工作流程的其他地方,它会比较这些值。由于新的 concat 值包含原始值,因此不会更新该字段。Import 认为没有变化。
如何使用完整的 concat 值保存实例?