可以使用来填充Django的ManyToMany字段my_field.add(my_instance),但据我了解,my_instance.id实际上只需要执行相应的SQL查询即可。
my_field.add(my_instance)
my_instance.id
如果要通过其ID添加对象,可以使用my_field.add(MyModel.objects.get(id=id)),但这将生成两个查询,而不是一个。如何避免这种额外的查询?
my_field.add(MyModel.objects.get(id=id))
尽管该add方法的文档中未提及它,但实际上您可以直接将id传递给它,如下所示:
add
my_instance.add(id)
当然,这仅在将主键用作关系的标识符时才起作用(默认行为)。