Django ORM: many_to_many.extend (some_queryset) - PullRequest
       66

Django ORM: many_to_many.extend (some_queryset)

1 голос
/ 27 сентября 2019

Я прочитал документы для RelatedManager .

Я не смог найти способ расширить отношение многие ко многим.

Пример (это то, что мой«сон» выглядит так):

my_user.groups.extend(my_group_queryset)

Я знаю, что мог бы использовать это:

for group in my_group_queryset:
    my_user.groups.add(group)

Но я предпочитаю зацикливание в БД зацикливанию в моем коде ( рекомендации ).

Есть ли способ добавить несколько объектов в отношение многие ко многим за один вызов метода?

1 Ответ

4 голосов
/ 27 сентября 2019

Вы можете добавить элементы оптом, распаковав набор запросов, а затем, таким образом, добавить все эти элементы в один .add(…) [Django-doc] вызов:

my_user.groups.add(<b>*</b>my_group_queryset)

Обратите внимание на звездочку (*) спереди.Таким образом, это распакует набор запросов и передаст каждый элемент как отдельный параметр в функцию .add(&hellip;).

...