Django's ManyToMany field can be populated using my_field.add(my_instance)
, but as I understand it only my_instance.id
is actually needed to perform the corresponding SQL query.
If I want to add an object by its id, I can use my_field.add(MyModel.objects.get(id=id))
, but this will generate two queries instead of one. How can I avoid this extra query?
Although the documentation of the add
method does not mention it, you can actually pass directly an id to it, like this:
my_instance.add(id)
Surely, this only works when the primary key is used as the identifier for the relation (the default behaviour).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With