django-import-export:no error but no data imported in Postgresql database

23 Views Asked by At

I use django-import-export package but when I try to import data, I get KeyError: 'id'. I've read documentation and apply the way to customize row identification field import_id_fields but that did not solve my issue.

#import

    dataset = tablib.Dataset(['2f60d3c6-95f1-43e1-ba30-62eb4a7533ed', 2001,'2023-09-25',False,'',False,'2023-09-25 13:21:46.03246+02',1,''], headers=['uuid', 'qr_code','date','village','provenance','synchronized','created_at','created_by','transfered_to'])
    preinclusion_resource = PreinclusionResource()
    result = preinclusion_resource.import_data(dataset, dry_run=True)
    print(result.has_errors())
    result = preinclusion_resource.import_data(dataset, dry_run=False)

#models.py

class Preinclusion(models.Model):

    _safedelete_policy = SOFT_DELETE_CASCADE
    uuid = models.UUIDField(default=uuid.uuid4, max_length=36, null=False, unique=True, primary_key=True)
    qr_code = models.IntegerField('QR Code', null=True, blank=True, unique=True) # TAB MATRONE & AS
    date = models.DateField("Date", null=True, blank=True) # TAB MATRONE & AS
    village = models.BooleanField('Pré-incluses au village', blank=True, default=False)
    provenance = models.IntegerField('Sinon', null=True, blank=True)
    pictograms = models.ManyToManyField(Pictogram, blank=True) # TAB MATRONE & AS
    synchronized = models.BooleanField(blank=True, default=False)
    created_at = models.DateTimeField("Créé le", null=True, blank=True, auto_now_add=True)
    created_by = models.IntegerField('Créé par', null=True, blank=True)
    transfered_to = models.IntegerField('Transféré à', null=True, blank=True)
    log = HistoricalRecords()

    class Meta:
        db_table = "Preinclusion"
        ordering = ["uuid"]

    def __str__(self):

        return f"{self.qr_code}"

#modelsResource

class PreinclusionResource(resources.ModelResource):

    class Meta:
        model = Preinclusion
        import_id_fields = ('uuid',)
        fields = ('uuid','qr_code','date','village','provenance','synchronized','created_at','creatd_by','transfered_to')  #
0

There are 0 best solutions below