Django admin - 如何在更改列表中获取对象删除链接?

时间:2012-03-19 13:03:12

标签: django django-admin

是否有可能在更改列表模板(change_list_results.html)中的Django Admin中获取对象删除网址?我必须在结果列表中添加图标(编辑/删除)并尝试获取对象的链接。

1 个答案:

答案 0 :(得分:1)

特定实例的删除网址可以通过以下方式获取:

info = obj._meta.app_label, obj._meta.module_name
reverse('admin:%s_%s_delete' % info, args=(obj.id,))

因此,只需向ModelAdmin添加一个方法,即返回包含在相应HTML中的网址:

def delete_link(self, obj):
    info = obj._meta.app_label, obj._meta.module_name
    url = reverse('admin:%s_%s_delete' % info, args=(obj.id,))
    return '<a href="%s">Delete</a>' % url
delete_link.allow_tags = True
delete_link.short_description = 'Delete'

然后,将其添加到list_display,就像模型上的任何其他字段一样。