Adding a "View on Site" link to the Django admin list_display
django, django-admin
Solution
You could write a reusable mixin like this (untested):
class ViewOnSiteMixin(object):
def view_on_site(self, obj):
return mark_safe(u"<a href='%s'>view on site</a>" % obj.get_absolute_url())
view_on_site.allow_tags = True
view_on_site.short_description = u"View on site"
Use it like this:
class SomeAdmin(ViewOnSiteMixin, admin.ModelAdmin):
list_display = [..., "view_on_site", ...]
(of course needs `get_absolute_url` defined on your model)
Problem
I'm trying to add a "View on site" link to my list_display in Django Admin. This seems like a pretty common use case, is there a shortcut way of doing it?