Пользовательский класс администратора действия удаления в django

Я хочу сделать пользовательское удаление действия класса admin с перезаписью функции delete в admin.py , но это не работает ! вот такая ошибка : Пост с ID "<django.db.models.query_utils.DeferredAttribute object at 0x0000020BF060A450>" не существует. Возможно, он был удален?

Я прочитал и использовал этот код на следующем сайте, но он не работает:

сайт, на котором я его использовал

class PostAdmin(admin.ModelAdmin):
    list_display = ('delete',)
    def delete(self, obj):
        view_name = "admin:{}_{}_delete".format(obj._meta.app_label, obj._meta.model_name)
        link = reverse(view_name, args=[Post.id])
        html = '<input type="button" onclick="location.href=\'{}\'" value="Delete" />'.format(link)
        return format_html(html)

Используйте obj.id, а не Post.id:

class PostAdmin(admin.ModelAdmin):
    list_display = ('delete',)

    def delete(self, obj):
        view_name = 'admin:{}_{}_delete'.format(
            obj._meta.app_label, obj._meta.model_name
        )
        link = reverse(view_name, args=[obj.id])
        return format_html(
            '<input type="button" onclick="location.href=\'{}\'" value="Delete" />',
            link,
        )
Вернуться на верх