Django import export行号:1-未找到"u"列"id" [英] Django import export Line number: 1 - u"Column 'id' not found

查看:343
本文介绍了Django import export行号:1-未找到"u"列"id"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将excel文档导入Django DB.我已将以下代码添加到admin.pymodel.py. Django的开发似乎有一个错误.我已经阅读了一些有关如何解决此错误的不同文档.但是我对如何准确地实现它仍然有些迷惑.

I am trying to import excel documents into a Django DB. I have added the following code to admin.py and model.py. There seems to be an error in the development of Django. I have read through several different documentations about how to fix this error. But I am still a little lost on how to implement it exactly.

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

In the Trace it keeps saying that my excel document needs an id field. There is no id field in my excel docs nor did I tell my model to look for an id field.

我发现的文档指出应在此处使用get_or_init_instance:

The documentation that I have found states that I should use get_or_init_instance here:

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

你们能提供的任何帮助都会很棒.

Any help that you guys could give would be great.

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')

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',)

踪迹:

> 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)

推荐答案

您可以通过以下步骤解决此问题:

You can solve this problem by using the following steps:

步骤1 首先转到C:/Users/am.sa18/Desktop/myenv/Lib/site-packages/import_export/resources.py

Step 1 first goto C:/Users/am.sa18/Desktop/myenv/Lib/site-packages/import_export/resources.py

第2步在编辑器中打开resources.py.

Step 2 open resources.py in the editor.

第3步在第84行进行更改,看起来像这样

Step 3 do change in line no 84, its looks like this

步骤4 import_id_fields = ['id']其中,默认情况下,"id"由import_export软件包设置, 您可以通过模型的主键更改"id". 添加主键后:import_id_fields = ['primary_key']

Step 4 import_id_fields = ['id'] Where 'id' by-default set by import_export package, you can change 'id' by your primary key of the model. After adding primary key : import_id_fields = ['primary_key']

步骤5 .保存resources.py文件并运行服务器.

Step 5 Save resources.py file and run the server.

这篇关于Django import export行号:1-未找到"u"列"id"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆