Я так не думаю. Отношение ManyToMany реализуется с помощью промежуточной таблицы, которая содержит кортежи (id, a_id, b_id). Следовательно, A должен существовать (см. «Пример использования API»), и каждый B должен иметь id
, прежде чем можно будет создать промежуточную строку. Я посмотрел на источник в django.db.models.fields.related
и, хотя create_many_related_manager
имеет метод с именем _add_items()
, кажется, предполагается, что все добавляемые элементы B уже имеют поля id
, то есть они должны быть сохранены заранее.
Я не смог найти ничего, что позволило бы эквивалент A.add(bunch_of_Bs_that_havent_been_saved_yet)
. Вышеупомянутый пример показывает add()
несколько B в одном кадре, но все они были сохранены до того, как произойдет add()
. К сожалению.