Django导入导出行号:1 - u"未找到列'id'

ico*_*aos 5 python django django-models django-admin django-import-export

我正在尝试将excel文档导入Django DB.我已将以下代码添加到admin.pymodel.py.Django的开发似乎有一个错误.我已经阅读了几个关于如何修复此错误的不同文档.但我对如何完全实现它仍然有点迷失.

在Trace中,它一直说我的excel文档需要一个id字段.id我的excel文档中没有字段,也没有告诉我的模型寻找id字段.

我发现的文档说明我应该get_or_init_instance在这里使用:

https://django-import-export.readthedocs.org/en/latest/import_workflow.html

你们给予的任何帮助都会很棒.

admin.py

class VinCasesAndCampaignsResource(resources.ModelResource):
    published = fields.Field(column_name='published_date')

    def get_instance(self, instance_loaders, row):
        return False

    class Meta:
        model = VinCasesAndCampaigns
        widgets = {}
        fields = ('VIN','LatestOpenCaseID','LatestClosedCaseID', 
                  'OpenDate', 'CloseDate', 'HasCampaigns',)
        import_id_fields = ['VIN']
        export_order = ('VIN',)
        exclude = ('id')
Run Code Online (Sandbox Code Playgroud)

model.py

class VinCasesAndCampaigns(models.Model):
    VIN = models.CharField(max_length=30)
    LatestOpenCaseID = models.DateField()
    LatestClosedCaseID = models.DateField()
    OpenDate = models.DateField()
    CloseDate = models.DateField()
    HasCampaigns = models.BooleanField(default = False)
    HasOpenCampaigns = models.BooleanField(default = False)
    HasCases = models.BooleanField(default = False)
    HasEstimates = models.BooleanField(default = False)
    HasDwell = models.BooleanField(default = False)
    HasClaims = models.BooleanField(default = False)

    exclude = ('id',)
Run Code Online (Sandbox Code Playgroud)

跟踪:

> Line number: 1 - u"Column 'id' not found in dataset. Available columns
> are: [u'VIN', u'LatestOpenCaseID', u'LatestClosedCaseID', u'OpenDate',
> u'CloseDate', u'HasCampaigns', u'HasOpenCampaigns', u'HasCases',
> u'HasEstimates', u'HasDwell', u'HasClaims']" Traceback (most recent
> call last): File
> "/Users/USER/anaconda/lib/python2.7/site-packages/django_import_export-0.2.8.dev0-py2.7.egg/import_export/resources.py",
> line 342, in import_data instance, new =
> self.get_or_init_instance(instance_loader, row)
Run Code Online (Sandbox Code Playgroud)

bla*_*ker -1

在 ModelResource 字段中包含字段 id

fields = ('id','VIN','LatestOpenCaseID','LatestClosedCaseID', 
              'OpenDate', 'CloseDate', 'HasCampaigns',)
Run Code Online (Sandbox Code Playgroud)

并在您的 Excel 文件中添加一列,其中字段 ID 为空值。这添加了一个具有自动增量的新字段。

文件.xls

id  VIN  OpenDate ...
    23   05-10-2018
    24   05-11-2018
Run Code Online (Sandbox Code Playgroud)