Verhindern, löschen Sie in der Django-Modell

Habe ich ein setup wie diesem (vereinfacht für diese Frage):

class Employee(models.Model):
    name = models.CharField(name, unique=True)

class Project(models.Model):
    name = models.CharField(name, unique=True)
    employees = models.ManyToManyField(Employee)

Wenn ein Mitarbeiter zu erreichen ist gelöscht, ich wollen, um zu überprüfen, ob er angeschlossen ist, um irgendwelche Projekte. Wenn ja, löschen sollte unmöglich sein.

Weiß ich über Signale und wie Sie arbeiten. Ich kann eine Verbindung zu den pre_delete signal, und machen es eine exception werfen, wie ValidationError. Dies verhindert löschen, aber es wird nicht ordnungsgemäß verarbeitet, die von Formularen und so.

Scheint dies eine situation, die anderen müssen laufen. Ich bin der Hoffnung, jemand kann eine elegante Lösung.

Dies ist nicht machbar, nur mit Python-code; die Datenbank selbst müssen modifiziert werden, wie gut.
Vielen Dank für Ihren Kommentar. Ich bin auf der Suche nach der Python - /Django-Teil zuerst und sehen, wie weit das bekommt mir in meinem app.

InformationsquelleAutor dyve | 2011-01-28

Schreibe einen Kommentar