我有3个模型,我想使用django-import-export将数据导入其中,但是我不知道如何建立关系。
我有两个csv文件,一个包含Assets,另一个包含Option。
CSV-资产
name,unique_id
car,carXYC,
car2,carABC,
CSV-选项
name,unique_id
stereo,carXYC,
tires,carXYC,
leather,carXYC,
4wdtires,carABC,
pleather,carABC,
models.py
class Option(models.Model):
name = models.CharField(
max_length=255,
)
class Asset(models.Model):
name = models.CharField(
max_length=255,
)
unique_id = models.CharField(
max_length=255,
unique=True,
)
option = models.ManyToManyField(
Option,
through=AssetOptionsThrough,
)
class AssetOptionsThrough(models.Model):
asset = models.ForeignKey(
"Asset",
on_delete=models.CASCADE,
)
option = models.ForeignKey(
"Option",
on_delete=models.CASCADE,
)
resources.py
class AssetResource(resources.ModelResource):
class Meta:
model = Asset
fields = ('name', 'unique_id',)
class OptionResource(resources.ModelResource):
unique_id = fields.Field(column_name='unique_id')
class Meta:
model = Option
fields = ('name', 'unique_id',)
unique_id
仅包含在OptionResource
类中,因此我们可以将其与正确的资产匹配,而实际上并没有将其存储在Option
模型中。
从这里我想:
导入资产CSV(通过Django Admin手动执行操作)
导入选项CSV(通过Django Admin进行手动操作),适用于每一行:
a)创建选项记录
b)使用unique_id
查找正确的资产
c)创建一个通过模型将它们链接到AssetOptions
中的记录(使用(a)和(b)的结果
我在https://django-import-export.readthedocs.io/en/latest/api_resources.html处查看了API,但无法弄清楚该如何做。
我需要数据集(包含unique_id
的行数据)和在步骤2a中创建的选项记录。我看不到API中提供这两种方法的方法吗?