django-import-export:如何使用没有键但有名称的外键导入数据?

D. *_*Joe 4 python django foreign-keys relationships django-import-export

我正在尝试设置 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)
Run Code Online (Sandbox Code Playgroud)

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

school,name
Central Grammar School,John Smith
West Primary,Jane Doe
West Primary,John Doe
...,...
Run Code Online (Sandbox Code Playgroud)

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

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

bmi*_*lac 6

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

school = fields.Field(column_name='school',
                      attribute='school', 
                      widget=ForeignKeyWidget(School, 'name'))
Run Code Online (Sandbox Code Playgroud)

请参阅ForeignKeyWidget 的文档。