如何用Django导入exp导入excel文件

2024-05-15 07:50:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用django导入导出,无法导入excel文件 我知道错误:

Line number: 1 - 'id'

Traceback (most recent call last):
File "C: \ mat4 \ env \ lib \ site-packages \ import_export \ resources.py", line 317, in import_data
instance = new self.get_or_init_instance (instance_loader, row)
File "C: \ mat4 \ env \ lib \ site-packages \ import_export \ resources.py", line 149, in get_or_init_instance
instance = self.get_instance (instance_loader, row)
KeyError: 'id'

Line number: 2 - 'id'

Traceback (most recent call last):
File "C: \ mat4 \ env \ lib \ site-packages \ import_export \ resources.py", line 317, in import_data
instance = new self.get_or_init_instance (instance_loader, row)
File "C: \ mat4 \ env \ lib \ site-packages \ import_export \ resources.py", line 149, in get_or_init_instance
instance = self.get_instance (instance_loader, row)
KeyError: 'id'

我的模型:

class Essai_Temperature(models.Model):
name = models.ForeignKey(Material, verbose_name=_('name'))                                    
nature_unit = models.ForeignKey(Property, verbose_name=_('category'))                      
choix = ChainedForeignKey(Physic, verbose_name=_('properties'), null=True, blank=True,
                          related_name='Essai_Temperature_choix',
                          chained_field="nature_unit",
                          chained_model_field="name",
                          show_all=False,
                          auto_choose=True) 
valT= models.FloatField(_('temperature'),blank=True, null=False)   
val10= models.FloatField(_('value'), blank=True, null=False)                                               
val_ref= models.CharField(_('reference of the data'), max_length=50, default='0')                  

资源.py

class Essai_Temperature_Resource(resources.ModelResource):
class Meta(object):
    model = Essai_Temperature

管理.py

class Essai_TemperatureAdmin(ImportExportModelAdmin):
resource_class = Essai_Temperature_Resource 
list_display = ('name', 'nature_unit', 'choix', 'valT', 'val10', 'val_ref')
ordering = ('name__name', 'nature_unit__name', 'choix__lapropriete', 'valT',)
list_filter = ('name', 'nature_unit', 'choix')

和excel文件

1   CT55    Mechanical  Hardness - Vickers (Mpa)    44  125 EF-01

2   CT55    Mechanical  Hardness - Vickers (Mpa)    44  127 EF-02

我不明白“身份证”的问题?


Tags: instancenamepyimportidtruegetmodels
3条回答

“无法导入任何格式。”csv文件的错误修复如下:

imported_data = dataset.load(inventory.read().decode('utf-8'),format='csv')

默认情况下,django import export需要列标题上的主键“id”。

通过将resources.py更改为

class Essai_Temperature_Resource(resources.ModelResource):
     class Meta(object):
     model = Essai_Temperature
     import_id_fields = ('<your key field here>',)

django导入导出希望标题行知道如何将列映射到字段。

相关问题 更多 >