455👍
✅
Use: object.m2mfield.add(*items)
as described in the documentation:
add()
accepts an arbitrary number of arguments, not a list of them.
add(obj1, obj2, obj3, ...)
To expand that list into arguments, use *
add(*[obj1, obj2, obj3])
Addendum:
Django does not call obj.save()
for each item but uses bulk_create()
, instead.
94👍
To add on, If you want to add them from a queryset
Example
# Returns a queryset
permissions = Permission.objects.all()
# Add the results to the many to many field (notice the *)
group = MyGroup.objects.get(name='test')
group.permissions.add(*permissions)
- [Django]-Cross domain at axios
- [Django]-How to convert JSON data into a Python object?
- [Django]-Django project models.py versus app models.py
58👍
Django 1.9 adds additional ways for adding to a many-to-many relationship.
Documentation: https://docs.djangoproject.com/en/dev/ref/models/relations/#django.db.models.fields.related.RelatedManager.set
set
is a new nicety:
>>> new_list = [obj1, obj2, obj3]
>>> e.related_set.set(new_list)
👤aero
- [Django]-How to pass multiple values for a single URL parameter?
- [Django]-VueJS + Django Channels
- [Django]-Are Django SECRET_KEY's per instance or per app?
Source:stackexchange.com