我正在尝试使用import_export导入数据集。数据集中的一列基于外键(通过实际" item_sku"值,而不是来自" id")来自另一个模型。但是,它一直给我以下错误:
"Line number: 1 - Model_Model01 matching query does not exist. "
我该如何解决这个问题?我一直在提及以下来源:source 01和source 02,但问题仍然存在。
以下是我的代码:
Models.py
from django.db import models
class Model_Model01(models.Model):
item_sku = models.CharField(max_length = 2, null = False, blank = False)
def __unicode__(self):
return self.item_sku
class Model_Model02(models.Model):
item_sku = models.ForeignKey(Model_Model01, on_delete = models.CASCADE, null = True, blank = False)
def __unicode__(self):
return self.item_sku
admin.py
from import_export import fields
from import_export.admin import ImportExportModelAdmin
from import_export.widgets import ForeignKeyWidget
from .models import (Model_Model01, Model_Model02)
class Admin_Model02(ImportExportModelAdmin):
item_sku = fields.Field(
column_name = "item_sku",
attribute = "item_sku",
widget = ForeignKeyWidget(Model_Model01, "item_sku")
)
class Meta:
model = Model_Model02
admin.site.register(Model_Model02, Admin_Model02)
答案 0 :(得分:1)
您需要在管理员中创建资源对象。它有一个import_id_field parameter
来定义主键应该是什么。
以下是文档中的示例:
from import_export import resources
from import_export.admin import ImportExportModelAdmin
from .models import Book
class BookResource(resources.ModelResource):
class Meta:
model = Book
import_id_fields = ('isbn',)
fields = ('isbn', 'name', 'author', 'price',)
class BookAdmin(ImportExportModelAdmin):
resource_class = BookResource