Администратор Django: переопределить метод удаления
У меня есть admin.py следующим образом:
class profilesAdmin(admin.ModelAdmin):
list_display = ["type","username","domain_name"]
Теперь я хочу выполнить некоторые действия перед удалением объекта:
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))
Если я использую метод удаления сигнала, как это, я получаю сообщение об ошибкеself
должен быть первым параметром.
Как я могу изменить вышеуказанную функцию?
И я хочу получить имя_профиля удаляемого объекта. Как это может быть сделано?
Я также попытался переопределить метод delete_model:
def delete_model(self, request, object):
filename=object.profile_name+".xml"
os.remove(os.path.join(object.type,filename))
object.delete()
Но это досне работает, если несколько объектов должны быть удалены за один выстрел.