Django Admin Cookbook-38如何获取特定对象的Django Admin后台URL
38.如何获取特定对象的Django Admin后台URL?
Hero模型有一个children字段,显示每个英雄的孩子的名字。你被要求将每个childrin链接到Hero模型更改页面。实现如下:
@admin.register(Hero) class HeroAdmin(admin.ModelAdmin, ExportCsvMixin): ... def children_display(self, obj): display_text = ", ".join([ "<a href={}>{}</a>".format( reverse('admin:{}_{}_change'.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,)), child.name) for child in obj.children.all() ]) if display_text: return mark_safe(display_text) return "-"
以上的reverse(‘admin:{}_{}_change‘.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,))
返回一个对象后台修改页的URL。
其他页面如下:
- 删除页URL:
reverse(‘admin:{}_{}_delete‘.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,))
- 历史页URL:
reverse(‘admin:{}_{}_history‘.format(obj._meta.app_label, obj._meta.model_name), args=(child.pk,))