From 6639b33ddee9c6d880e1b8c777f6795efcf76f3f Mon Sep 17 00:00:00 2001 From: Greg Turner Date: Mon, 24 Oct 2016 18:19:30 +1100 Subject: [PATCH] Add utilities for quickly getting the admin url/link for a model instance. --- icekit/utils/admin/urls.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 icekit/utils/admin/urls.py diff --git a/icekit/utils/admin/urls.py b/icekit/utils/admin/urls.py new file mode 100644 index 00000000..e5a4202f --- /dev/null +++ b/icekit/utils/admin/urls.py @@ -0,0 +1,24 @@ +from django.contrib.admin.templatetags.admin_urls import admin_urlname +from django.template import Template, Context +from django.utils.safestring import mark_safe + + +def admin_url(inst): + """ + :param inst: An Model Instance + :return: the admin URL for the instance. Permissions aren't checked. + """ + if inst: + t = Template("""{% load admin_urls %}{% url opts|admin_urlname:'change' inst.pk %}""") + return t.render(Context({ 'inst': inst, 'opts': inst._meta})) + return "" + +def admin_link(inst): + """ + :param inst: An Model Instance + :return: a complete admin link for the instance. Permissions aren't checked. + """ + if inst: + t = Template("""{% load admin_urls %}{{ inst }}""") + return mark_safe(t.render(Context({ 'inst': inst, 'opts': inst._meta}))) + return "" \ No newline at end of file