У меня есть две модели с отношением ManyToMany
, например:
# models.py
class Fileset(models.Model):
fileset_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, db_index=True)
name = models.CharField(max_length=50)
in_content_build = models.BooleanField(default=False)
class ContentBuild(models.Model):
content_build_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, db_index=True)
filesets = models.ManyToManyField(Fileset, related_name='content_filesets')
Когда создается ContentBuild
, я хочу, чтобы все Filesets
, которые находятся в этом ContentBuild
, имели в своем поле in_content_build
значение True
.
Я пытался добиться этого с помощью сигнала post_save
, но я не знаю, как получить все связанные Filesets
.
Моя попытка сигнала:
# signals.py
@receiver(post_save, sender=ContentBuild)
def set_fileset_as_deployed(sender, instance, **kwargs):
try:
content_build = ContentBuild.objects.get(content_build_uuid=instance.content_build_uuid)
for fileset in content_build.filesets:
fileset.in_content_build = True
fileset.save()
except ContentBuild.DoesNotExist:
pass
Как мне установить in_content_build
на True
для всех наборов файлов в созданном экземпляре ContentBuild
?