Ниже представлена моя модель:
class Tag(models.Model):
tag = models.CharField(max_length=100,unique=True)
class Image(models.Model):
name=models.CharField(max_length=40,unique=False)
tags = models.ManyToManyField(Tag)
Мой сериализатор:
class imagesSerializer(QueryFieldsMixin,serializers.ModelSerializer):
tags = CreatableSlugRelatedField(
many=True,
queryset=Tag.objects.all(),
slug_field='tag',
required= False
)
class Meta:
model = Image
fields = ('id','name','tags')
def update(self, instance, validated_data):
tags_data = validated_data.pop('tags')
for item in validated_data:
if Image._meta.get_field(item):
setattr(instance, item, validated_data[item])
Tag.objects.filter(image=instance).delete()
for tag_data in tags_data:
instance.tags.delete()
tag_id, created=Tag.objects.get_or_create(tag=tag_data)
instance.tags.add(tag_id)
instance.save()
return instance
Теперь после миграции создаются три таблицы: 1. Изображение 2. Тег 3. Image_Tags При обновленииданные тегов мои старые данные тегов удаляются в таблицах Tag и Image_Tags.Теперь я хочу удалить существующие данные тега для этого изображения из таблицы image_tags, но не в таблице тегов.
Как этого добиться с помощью Django?