django:有多少查询

时间:2011-02-15 16:56:13

标签: django django-models

这里有一个菜鸟问题。

在阅读文档后,我发现使用外键引用保存模型需要保存被引用对象的模型实例。

a = ModelA.objects.get(pk=1)
b = ModelB(foreignk = a,.....)
b.save()

在这种情况下,实际执行了多少个查询?如果我有参考模型的pk,这是正确的方法吗?

2 个答案:

答案 0 :(得分:3)

每个ForeignKey字段也会导致隐藏字段具有相同的名称,但附加了_id。将外国PK分配给该字段就足够了。

b = ModelB(...)
b.foreignk_id = 1
b.save()

答案 1 :(得分:1)

如果使用解决方案,则有2个查询:一个用于在将ModelA作为参数传递给ModelB时评估ModelA的查询集,第二个用于调用save()。

使用Ignacios解决方案,保存时只有一个。