Django import-export.admin自定义:对于xlsx工作表,并更改diff策略

我有一个棘手的问题。 我用django-import-export来导入xlsx数据。 我已经通过ImportExportModelAdmin将它集成到Djangopipe理。 下面是admin.py:

@admin.register(assets) class data_import(ImportExportModelAdmin): pass 

但是当我多次导入数据时,我发现它只是保存最新的数据(最后一个)进行build模,每次导入时都要保存所有的数据,只是使用一些列来决定数据是否重复。如何解决这个?
model.py:

 class station(models.Model): station_name = models.CharField(max_length=100, verbose_name='Astation') class assets(model.Model): name = models.CharField(max_length = 200, verbose_name = 'Aname') sn = models.CharField(max_length=200, verbose_name='Asn', default=None) ip_address = models.GenericIPAddressField(u'IP', blank=True, null=True) station = models.ForeignKey(station) 

您可以创build资源类并覆盖get_instance方法并始终返回False

 from import_export import resources, fields from import_export.widgets import ForeignKeyWidget class DataResource(resources.ModelResource): # UPDATE # If model has ForeignKey station = fields.Field(widget=ForeignKeyWidget(station, 'id')) def get_instance(self, instance_loader, row): # Returning False prevents us from looking in the # database for rows that already exist return False class Meta: model = assets # class name should be camelcase fields = '__all__' # If all column of table present in xlsx otherwise mention fields name. @admin.register(assets) class data_import(ImportExportModelAdmin): resource_class = DataResource