Django массовое добавление многий ко многим
Есть 2 модели
class Image(models.Model):
image_path = models.CharField("image path", max_length=300, unique=True)
image_name = models.CharField("image name", max_length=30)
tags = models.ManyToManyField("Tag", verbose_name=("tags"))
class Tag(models.Model):
tag = models.CharField("tag", max_length=20, unique=True)
Обе заполняются через bulk_create
. Надо массово связать Image
и Tag
.
Что-то типа этого:
for tag in Tag.objects.all():
Image.objects.filter(image_path__contains=os.sep + tag.tag + os.sep).update(tags=tag)
При этом если изображение уже имеет связь с тегом повторно её создавать не надо. Как это сделать?
Источник: Stack Overflow на русском