Добавление нескольких данных в Many to many в Django
У меня есть проект, я хочу добавить() несколько данных в поле ManyToMany
class Product(models.Model):
name = models.models.CharField(Name)
class Tags(models.Model):
product_of_names = models.ForeignKey(Product)
tag_name = models.models.CharField()
class Group(models.Model):
tag_group = models.ManyToManyField(Tags)
views.py
def home(request, pk):
product_name = Product.objects.get(pk=pk)
tag = Tags.objects.filter(product_of_names=product_name)
print(tag.id)
>>> 1
>>> 2
>>> 3
insert_data = Group.objects.create()
insert_data.tag_group.add(tag)
insert_data.save()
он добавляет только одного, я хочу добавить их всех в ManyToMany
Спасибо за любую помощь
Вы можете просто добавить больше объектов в метод .add()
.
insert_data.tag_group.add(tag_1, tag_2, tag_3)
или короче
insert_data.tag_group.add(*tags)
Вы также можете передать список, используя .set()
list_of_tags = list(Tags.objects.filter(product_of_names=product_name))
insert_data.tag_group.set(list_of_tags)
Прочитайте документацию: https://docs.djangoproject.com/en/4.1/ref/models/relations/#django.db.models.fields.related.RelatedManager.add