Django-Modell: delete () nicht ausgelöst
Habe ich ein Modell:
class MyModel(models.Model):
...
def save(self):
print "saving"
...
def delete(self):
print "deleting"
...
Save()-Methode ausgelöst, aber der delete() nicht. Ich benutze die aktuelle svn-Version (Django-version 1.2 pre-alpha-SVN-11593), und im Hinblick auf die Dokumentation bei http://www.djangoproject.com/documentation/models/save_delete_hooks/ das funktionieren sollte.
Irgendwelche Ideen?
InformationsquelleAutor der Frage schneck | 2009-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denke ich bist du wohl mit dem admin-bulk-delete-Funktion, und die Tatsache, dass der admin-bulk-delete-Methode aufrufen nicht
delete()
(siehe auch die Verwandte ticket).Ich habe diese Runde in der Vergangenheit durch schreiben eines benutzerdefinierten admin-Aktion für das löschen von Modellen.
Wenn du nicht mit dem admin-bulk-delete-Methode (z.B. Sie klicken auf die Schaltfläche "löschen" auf das Objekt "Seite Bearbeiten"), dann ist etwas anderes passiert.
Sehen, die Warnung hier:
Meine benutzerdefinierte admin-Modell sieht wie folgt aus:
InformationsquelleAutor der Antwort Dominic Rodger
Ich weiß, diese Frage ist uralt, aber ich lief einfach in diesen wieder und wollte noch hinzufügen, können Sie immer bewegen Sie Ihren code, um eine pre_delete oder post_delete signal etwa so:
Klappt es mit dem admin-bulk-delete-Aktion (zumindest ab 1.3.1).
InformationsquelleAutor der Antwort David Bennett
Die bulk-Aktion des admin-Anrufe
queryset.delete()
.Könnte man das überschreiben der
.delete()
Methode der queryset,so ist es immer ein 1-by-1 löschen von Objekten. Zum Beispiel:
in managers.py:
In models.py:
InformationsquelleAutor der Antwort vdboor
Das Hauptproblem ist, dass der Django-admin-bulk-delete-verwendet SQL-Instanz nicht.löschen(), wie anderswo. Für eine admin-only-Lösung, die folgende Lösung bewahrt die Django-admin "wollen Sie wirklich löschen" interstitial. vdboor die Lösung ist die Allgemeine, jedoch.
InformationsquelleAutor der Antwort Scott A