django-import-export KeyError: u'CUSTOM_PRIMARY_KEY'

django-import-export KeyError: u'CUSTOM_PRIMARY_KEY'

class ProductResource(resources.ModelResource):
    class Meta:
        model = Product
        exclude = ('pub_date','modified_date',)
        import_id_fields = ('CD-SKU',)

class ProductAdmin(ImportExportModelAdmin):
        resource_class = ProductResource

错误是:

Line number: 1 - u'CD-SKU'
0H041501, VOL3380235300029, 3380235300029, B00FIZJI0K, 11.59, None, None, None, None, None, None, None, None, None
Traceback (most recent call last):
File "/home/mws/Env/mws_prod/local/lib/python2.7/site-packages/import_export/resources.py", line 434, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/home/mws/Env/mws_prod/local/lib/python2.7/site-packages/import_export/resources.py", line 258, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/home/mws/Env/mws_prod/local/lib/python2.7/site-packages/import_export/resources.py", line 252, in get_instance
return instance_loader.get_instance(row)
File "/home/mws/Env/mws_prod/local/lib/python2.7/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: u'CD-SKU'

看了相关问题,去掉了原生自动生成的id,改用自己的字段为主。在资源 class 中提到了它。但是还是导入不了

感谢所有帮助。谢谢!

看来你只是打错了字。你的模型是 CD_SKU 而你的资源使用 CD-SKU:

class Product(models.Model):
    CD_SKU = models.CharField(max_length = 200, primary_key=True) 

import_id_fields = ('CD-SKU',)

改为:

import_id_fields = ('CD_SKU',)

希望对您有所帮助!

在解决类似问题后遇到了这个问题。

对我来说,解决方法是在 import_id_fields 声明中包含尾随逗号。希望这可以帮助其他人搜索这些 "Line number: 1" 错误。