To create an object for a Django model with a many to many field, we can get the through model from the entity we want to create the objects many to many relation for.
For instance, we write
from django.db import models
class Users(models.Model):
pass
class Sample(models.Model):
users = models.ManyToManyField(Users)
to add the Sample
model.
Then we write
Users().save()
Users().save()
ThroughModel = Sample.users.through
users = Users.objects.filter(pk__in=[1,2])
sample_object = Sample()
sample_object.save()
ThroughModel.objects.bulk_create([
ThroughModel(users_id=users[0].pk, sample_id=sample_object.pk),
ThroughModel(users_id=users[1].pk, sample_id=sample_object.pk)
])
to get the users
model from Sample
with
ThroughModel = Sample.users.through
Then we create a Sample
object with
sample_object = Sample()
sample_object.save()
Then we create the users with
ThroughModel.objects.bulk_create([
ThroughModel(users_id=users[0].pk, sample_id=sample_object.pk),
ThroughModel(users_id=users[1].pk, sample_id=sample_object.pk)
])