Метод удаления списка администратора и удаления модели () - PullRequest
1 голос
/ 08 марта 2011

Я определил метод delete () в моей модели.Я использую его для очистки кэша и удаления больших пальцев.Когда я удаляю элемент в админке, в его деталях (режим редактирования) очищается кеш и удаляются все превью.Но когда я хочу удалить несколько элементов одновременно - отметив флажки в списке элементов, - элементы удаляются, но cahce и эскизы не удаляются, поэтому мой метод удаления модели не используется:я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 08 марта 2011

Это в самом первом разделе документации .По соображениям эффективности Django Admin вызывает delete для объекта набора запросов.Это полностью обходит каждый метод удаления экземпляров.Прочитайте документы.

Если вы хотите переопределить это поведение, просто напишите настраиваемое действие, которое выполняет удаление по вашему предпочтительному способу - например, вызвав Model.delete () для каждого из выбранных элементов..

0 голосов
/ 06 февраля 2013

Как описано в документации, вам необходимо переопределить действие delete selected:

def delete_selected(modeladmin, request, queryset):
    for element in queryset:
        element.delete()
delete_selected.short_description = "Delete selected elements"

class ElementAdmin(admin.ModelAdmin):
    actions = [delete_selected]

admin.site.register(Element, ElementAdmin)
...