我正在尝试设置 django-import-export 来处理存储在电子表格中的数据。 电子表格不包含作为 ID 的外键,而是包含相关对象的(也是唯一的)名称。 在我的数据库中,我将拥有在位于 Cities 的 Schools 工作的 Teachers 的外键关系。
想象这是模型(摘录):
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 的电子表格数据从头开始创建数据库。)
请您参考如下方法:
ForeignKeyWidget 接受可选的 field 参数,因此它在 SchoolResource 中看起来像这样:
school = fields.Field(column_name='school',
attribute='school',
widget=ForeignKeyWidget(School, 'name'))
请参阅 ForeignKeyWidget 的文档.
