我想用三个外键创建一个新的Django ORM对象。我已经获得了外国行的ID,我的意思是 - 这就是我需要填充新行中的外键列,对吗?但是,我似乎无法创建新行而不会使用DB三次来实例化这些ID中的对象。
所以我需要做的是:
foreign_object = models.ForeignObject.get(pk=foreign_object_id)
a = models.Object1.get_or_create(f = foreign_object)
我想做什么:
a = models.Object1.get_or_create(f_id = foreign_object_id)
然而, f_id
不是Django认可的字段。如果我只是将foreign_object_id
分配给f
(我想我记得这在某些情况下有效),Django抱怨它想要一个ForeignObject
实例而不是int。
有什么办法吗?
答案 0 :(得分:1)
在这种情况下,您需要使用双下划线符号
例如
a = models.Object1.get_or_create(f__pk=foreign_object_id)