我在我的管理面板中使用Django-import-export模块。我导入了从我们的 ERM 系统中提取的 .csv 文件,该文件更新了 Django myapp 数据库中的记录。一切都像一个魅力,除了当一些记录从 ERM 中删除并且不存在于 .csv 数据转储中时,由于记录不存在,因此不会在 Django 数据库中进行更新。
我想在导入 .csv 文件时写一个子句,更改或删除(最好将记录名称更改为“已删除”)所有不存在于上述 .csv 文件中的记录。记录由“数字”列标识,该列是数据库中的主键。
我能找到的最接近的解决方案是在上传的文件中添加“删除”列并设置“1”,但这无济于事,因为这些记录首先不存在。
这是我的 admin.py 的样子:
from django.contrib import admin
from .models import Supplier, SiteServices
from import_export import resources, widgets, fields
from import_export.admin import ImportExportModelAdmin
# Register your models here.
class SupplierResource(resources.ModelResource):
delete = fields.Field(widget=widgets.BooleanWidget())
def for_delete(self, row, instance):
return self.fields['delete'].clean(row)
class Meta:
model = Supplier
import_id_fields = ['number']
class SupplierAdmin(ImportExportModelAdmin, admin.ModelAdmin):
resource_class = SupplierResource
admin.site.register(Supplier, SupplierAdmin)