我正在尝试设置 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 的文档.
关于python - django-import-export:如何使用没有键但有名称的外键导入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32466748/