5

我正在尝试设置 django-import-export 来处理存储在电子表格中的数据。电子表格不包含作为 ID 的外键,而是包含相关对象的(也是唯一的)名称。在我的数据库中,我将Teachers有谁工作的外键关系Schools位于Cities.

想象一下这是模型(摘录):

class School(models.Model):
    city = models.ForeignKey(City)
    name = models.CharField(max_length=200)


class Teacher(models.Model):
    school = models.ForeignKey(School)
    name = models.CharField(max_length=200)

教师的电子表格可能如下所示:

school,name
Central Grammar School,John Smith
West Primary,Jane Doe
West Primary,John Doe
...,...

如何构建SchoolResource模型以便在导入过程中接受名称而不是 ID?

(我不能只从数据库中获取 ID,因为在某一时刻,我的想法是从头开始只使用不包含任何 ID 的电子表格数据来启动数据库。)

4

1 回答 1

7

ForeignKeyWidget接受可选field参数,所以它看起来像这样SchoolResource

school = fields.Field(column_name='school',
                      attribute='school', 
                      widget=ForeignKeyWidget(School, 'name'))

请参阅ForeignKeyWidget的文档。

于 2015-09-09T13:19:58.207 回答