【问题标题】:Django admin - how to get object deletion link in change list?Django admin - 如何在更改列表中获取对象删除链接?
【发布时间】:2012-03-19 13:03:11
【问题描述】:

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

【问题讨论】:

  • 阅读 ModelAdmin.list_display 上的文档,similar questions 也曾多次回答过。
  • 但我需要在我的新管理员自定义 change_list_results.html 模板中全局使用它,而不仅仅是 1 个模型。

标签: django django-admin


【解决方案1】:

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

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

因此,只需向您的 ModelAdmin 添加一个方法,以返回包装在适当 HTML 中的 URL:

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,就像模型上的任何其他字段一样。

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 2011-04-29
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2021-01-11
    • 2020-05-05
    • 2015-05-04
    • 2016-02-03
    相关资源
    最近更新 更多