Utilizzando i seguenti modelli correlati (un blog può avere revisioni multiple):Django - Cascade delezione in ManyToManyRelation
class BlogEntryRevision(models.Model):
revisionNumber = models.IntegerField()
title = models.CharField(max_length = 120)
text = models.TextField()
[...]
class BlogEntry(models.Model):
revisions = models.ManyToManyField(BlogEntryRevision)
[...]
Come posso dire a Django per eliminare tutti i relativi BlogEntryRevision
s quando il corrispondente BlogEntry
è soppressa? Il valore predefinito sembra essere quello di mantenere gli oggetti in una relazione molti-a-molti se un oggetto del lato "altro" viene eliminato. Un modo per farlo - preferibilmente senza annullare il valore BlogEntry.delete
?
Sì, ho ammesso questo errore nel commento all'altra risposta. Per completezza: supponendo un caso d'uso che ha più senso con 'ManyToManyRelation', quale sarebbe un buon modo per eliminare a cascata le eliminazioni? Funziona l'approccio della risposta cancellata di Gabi Purcaru? – AndiDog
Le eliminazioni si sovrappongono a '' null = True'' –
Il comportamento di eliminazione in cascata su 'ForeignKey's può essere controllato con [' on_delete'] (https://docs.djangoproject.com/en/dev/ref/models/ campi/# django.db.models.ForeignKey.on_delete) (ma per default 'CASCADE') – meshy