my_field.add(my_instance)
填充 Django's ManyToMany field,但据我了解,实际上只需要my_instance.id
来执行相应的SQL查询。
如果我想通过其ID添加对象,我可以使用my_field.add(MyModel.objects.get(id=id))
,但这将生成两个查询而不是一个。我怎样才能避免这个额外的查询?
答案 0 :(得分:19)
虽然the documentation of the add
method没有提到它,但您实际上可以直接将ID传递给它,如下所示:
my_instance.add(id)
当然,这仅在主键用作关系的标识符(默认行为)时才有效。