当主键已知时,防止对ForeignKey的选择查询

时间:2011-05-28 19:40:26

标签: python sql django

将行插入到具有一对一关系的表中,您可以在Django中执行此操作:

mypk=2   # Comes from the POST request
model=MyModel(myField="Hello", myForeignModel=ForeignModel.objects.get(pk=mypk))
model.save()

这将导致SELECT查询后跟INSERT查询。

但是,SELECT查询并不是必需的,因为它将是插入外键字段的mypk。有没有办法让Django只插入主键而不进行SELECT?

其次,这里是否存在并发问题(如果主键在用户提交请求之前发生变化)。如果是这样,这些如何处理?

1 个答案:

答案 0 :(得分:1)

来自the docs

  

在幕后,Django将"_id"附加到字段名称以创建其数据库列名。

只需将myForeignModel_id设置为FK值。