Как обновить поля при импорте Django?

Мне нужно обновлять поля при импорте для массового редактирования ManyToMany. При импорте сейчас я могу добавлять только продукты, потому что когда я пытаюсь добавить уже существующие поля, я получаю сообщение об уже существующих ID. Как я могу обновить продукты с помощью импорта?

admin.py

class ProductResource(resources.ModelResource):

    class Meta:
        model = Part

class PartAdmin(ImportExportActionModelAdmin):
    resource_class = ProductResource
    filter_horizontal = ('analog',)

admin.site.register(Part, PartAdmin)

models.py

class Part(models.Model):
    brand = models.CharField('Производитель', max_length=100)
    number = models.CharField('Артикул', max_length=100, unique=True)
    name = models.CharField('Название', max_length=100)
    description = models.TextField('Комментарий', blank=True, max_length=5000)
    analog = models.ManyToManyField('self', blank=True, related_name='AnalogParts')
    images = models.FileField('Главное изображение', upload_to = 'parts/', blank=True)
    images0 = models.FileField('Дополнительное фото', upload_to = 'parts/', blank=True)
    images1 = models.FileField('Дополнительное фото', upload_to = 'parts/', blank=True)
    images2 = models.FileField('Дополнительное фото', upload_to = 'parts/', blank=True)

    def __str__(self):
        return str(self.brand + " " + self.number + " " + self.name)
        return self.name
from django.contrib import admin
from .models import *

from import_export.admin import ImportExportActionModelAdmin
from import_export import resources
from import_export import fields
from import_export.widgets import ForeignKeyWidget

class ProductResource(resources.ModelResource):
    #category = fields.Field(column_name='Артикул', attribute='number')

    class Meta:
        model = Part
        import_id_field = 'number'
        import_id_fields = ('number',)

    def skip_row(self, instance, original):
        original_id_value = getattr(original, self._meta.import_id_field)
        instance_id_value = getattr(instance, self._meta.import_id_field)
        if original_id_value != instance_id_value:
            return True
        if not self._meta.skip_unchanged:
            return False
        for field in self.get_fields():
            try:
                if list(field.get_value(instance).all()) != list(field.get_value(original).all()):
                    return False
            except AttributeError:
                if field.get_value(instance) != field.get_value(original):
                    return False
        return True

admin.site.register(Kits)

class PartAdmin(ImportExportActionModelAdmin):
    resource_class = ProductResource
    filter_horizontal = ('analog',)

admin.site.register(Part, PartAdmin)



#class PartAdmin(admin.ModelAdmin):
#    filter_horizontal = ('analog',)

#admin.site.register(Part, PartAdmin)

Вернуться на верх