Ответ 1
Конечно, это возможно! Вам просто нужно создать явную промежуточную таблицу и
затем используйте этот метод bulk_create
.
Мне было интересно, есть ли эквивалент "добавить все" или "массовое создание" для многих-многих отношений, которые уменьшают количество запросов (я буду делать это для длинного списка)?
Документы на эту тему, похоже, предполагают, что это невозможно:
https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/
**Associate the Article with a Publication:**
a1.publications.add(p1)
**Create another Article, and set it to appear in both Publications:**
a2 = Article(headline='NASA uses Python')
a2.save()
a2.publications.add(p1, p2)
a2.publications.add(p3)
Конечно, это возможно! Вам просто нужно создать явную промежуточную таблицу и
затем используйте этот метод bulk_create
.
Если вы хотите добавить queryset для массового добавления или удаления метода для многих моделей отношений:
qs = Article.objects.all()
publications = Publications.objects.get(id=1)
publications.article_set.add(*qs)
publications.save()
publications.article_set.remove(*qs)
publications.save()