through onetomany objects not manyrelatedmanager many example django list manytomanyfield

onetomany - ¿Cómo agregar múltiples objetos a la relación ManyToMany a la vez en Django?



manytomanyfield django example (3)

Basado en el documento de Django, debería ser capaz de pasar múltiples objetos a la vez para agregarlo a una relación de muchos, pero obtengo un

* TypeError: tipo de ajuste: ''list''

cuando intento pasar un queryset de django en una lista. Pasar un Queryset o ValuesListQueryset también parece fallar. ¿Hay una mejor manera de usar un bucle for?



Para agregar, si desea agregarlos desde un conjunto de consulta

Ejemplo

# Returns a queryset permissions = Permission.objects.all() # Turns it into a list permissions = list(permissions) # Add the results to the many to many field (notice the *) group = MyGroup.objects.get(name=''test'') group.permissions.add(*permissions)

De: inserte los resultados de queryset en ManytoManyfield


Use: object.m2mfield.add(*items) como se describe en la documentation :

add() acepta una cantidad arbitraria de argumentos, no una lista de ellos.

add(obj1, obj2, obj3, ...)

Para expandir esa lista en argumentos, use *

add(*[obj1, obj2, obj3])

Apéndice:

Django no llama a obj.save() para cada elemento, sino que usa bulk_create() , en su lugar.