У меня есть две модели в Django, которые я использую для хранения некоторых документов, а также для создания индекса слов в документах. Вот модели:
class DMS_Dokument(models.Model):
dms_dok_titel = models.CharField(max_length=255, blank=True)
dms_dok_beschreibung = models.CharField(max_length=3000, blank=True, null=True)
dms_dok_datei = models.FileField(max_length=255,upload_to='DMS/')
dms_dok_hochgeladen_am = models.DateField()
dms_dok_indiziert = models.BooleanField(default=False)
dms_dok_gehoert_zu_app = models.CharField(max_length=255, choices=app_choices, blank=False, null=False)
dms_dok_typ = models.CharField(max_length=255, choices=typ_choices, blank=False, null=False, default='Sonstiges')
def save(self, *args, **kwargs):
preserve_ext = extension(self.dms_dok_datei.name)
neuer_dateiname = self.dms_dok_gehoert_zu_app + '_' + self.dms_dok_titel + '_' + self.dms_dok_hochgeladen_am.strftime("%d.%m.%Y")
self.dms_dok_datei.name = neuer_dateiname + preserve_ext
super(DMS_Dokument, self).save(*args, **kwargs)
class Meta:
app_label = 'DMS'
class DMS_Index_Data(models.Model):
dms_ind_wort = models.CharField(max_length=255, blank=False, null=True)
dms_ind_m2m = models.ManyToManyField(DMS_Dokument, related_name='indexes')
#dms_ind_dok_fk = models.ForeignKey('DMS_Dokument', on_delete=models.CASCADE)
class Meta:
app_label = 'DMS'
ordering = ['dms_ind_wort']
Теперь, когда я использую DeleteView для удаления объекта DMS_Dokument, он правильно удаляется из базы данных. Но записи в другой таблице остаются. Как я могу сказать Django, что после удаления документа индекс также должен быть очищен от относящихся к нему записей? И разве это особенное, потому что у меня отношения «многие ко многим»?