1.如何获取特殊对象的django admin url

你有显示每个英雄孩子的孩子列,你被要求将每个孩子的链接放到更改页面,你可以这样做:

  1. @admin.register(Hero)
  2. class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
  3. ...
  4. def children_display(self, obj):
  5. display_text = ", ".join([
  6. "<a href={}>{}</a>".format(
  7. reverse('admin:{}_{}_change'.format(obj._meta.app_label, obj._meta.model_name),
  8. args=(child.pk,)),
  9. child.name)
  10. for child in obj.children.all()
  11. ])
  12. if display_text:
  13. return mark_safe(display_text)
  14. return "-"

reverse('admin:{}_{}_change'.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,)) 会给出对象的url

其他选项: 删除:

reverse('admin:{}_{}_delete'.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,))

历史记录: reverse('admin:{}_{}_history'.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,))