Django ORM:many_to_many.extend(some_queryset)

Django ORM: many_to_many.extend(some_queryset)

我阅读了 RelatedManager 的文档。

我找不到扩展多对多关系的方法。

示例(这是我的 "dream" 的样子):

my_user.groups.extend(my_group_queryset)

我知道我可以使用这个:

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

但我更喜欢在数据库中循环而不是在我的代码中循环 (guidelines)。

有没有办法在一个方法调用中将多个对象添加到多对多关系中?

您可以通过解包 查询集批量添加项目,然后在单个 .add(…) [Django-doc] 调用中添加所有这些元素:

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

注意前面的星号 (*)。这将因此解压缩查询集,并将每个项目作为单独的参数传递给 .add(…) 函数。