Я использую django-import-export модуль для импорта CSV в моем приложении.Однако я хочу, чтобы, если я снова загрузил тот же CSV с некоторыми измененными значениями, он обновляет существующие значения в моделях, а не добавляет те же значения в новые строки.Вот мой код:
#resources.py:
class ProductResource(resources.ModelResource):
class Meta:
model = Product
import_id_fields = ('p_id',)
skip_unchanged = True
report_skipped = False
#views.py:
if request.method == 'POST' and request.FILES['myfile']:
product_resource = ProductResource()
dataset = Dataset()
new_product = request.FILES['myfile']
imported_data = dataset.load(new_product.read().decode('utf-8'),format='csv')
result = product_resource.import_data(dataset, dry_run = True)
if not result.has_errors():
product_resource.import_data(dataset, dry_run=False)
#models.py:
class Product(models.Model):
p_id = models.CharField(max_length=20)
name = models.CharField(max_length=20)
quantity = models.IntegerField()
prop1 = models.CharField(max_length=30)
prop2 = models.CharField(max_length=30)
def __str__(self):
return self.p_id