Django admin: überschreiben der delete-Methode

Habe ich admin.py wie folgt:

  class profilesAdmin(admin.ModelAdmin):
     list_display = ["type","username","domain_name"]

Nun möchte ich zu einer Aktion vor dem löschen des Objekts:

  class profilesAdmin(admin.ModelAdmin):
     list_display = ["type","username","domain_name"]

     @receiver(pre_delete, sender=profile)
     def _profile_delete(sender, instance, **kwargs):
        filename=object.profile_name+".xml"
        os.remove(os.path.join(object.type,filename))

Wenn ich löschen signal-Methode wie diese, bekomme ich eine Fehlermeldung self sollte der erste parameter.

Wie kann ich ändern, die oben genannten Funktion?
Und ich will zum abrufen der Profilname des Objekts gelöscht werden. Wie kann das getan werden?

Ich habe auch versucht das überschreiben delete_model Methode:

def delete_model(self, request, object):
    filename=object.profile_name+".xml"
    os.remove(os.path.join(object.type,filename))
    object.delete()

Aber diese schien das nicht funktionieren, wenn mehrere Objekte gelöscht werden müssen, in einem Schuss.

Trotzdem bekomme ich den Fehler selbst nicht definiert

InformationsquelleAutor arjun | 2013-03-04

Schreibe einen Kommentar