0

i want to remove multiple objects while a M2M field filled

for example :

class ModelA(models.Model):
    admin = models.ForeignKey(User,on_delete=models.CASCADE)
    product = models.CharField(max_length=30,unique=True)

    def __str__(self):
        return self.product

class ModelB(models.Model):
    admin = models.ForeignKey(User,on_delete=models.CASCADE)
    unnecessary = models.ManyToManyField(ModelA)

i need to whenever ModelB filled then remove the selected product name , i tried this ;

def m2m_product_remove(sender,*args,**kwargs):

    ModelA.objects.filter(pk__in=kwargs.get('pk_set')).delete()

m2m_changed.connect(m2m_product_remove,sender=ModelB.unnecessary.through)

but it raise this error :

(1452, 'Cannot add or update a child row: a foreign key constraint fails

art_cs
  • 683
  • 1
  • 8
  • 17

0 Answers0