From: Scott Baker Date: Mon, 13 Jan 2014 20:09:31 +0000 (-0800) Subject: don't create selflink if no modeladmin exists for that model X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=e2bbf7eddfcf2c6df55dde4b7db4fcac14eb77bd;p=plstackapi.git don't create selflink if no modeladmin exists for that model --- diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index 77fa744..3a13945 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -14,7 +14,7 @@ from django.utils import timezone from django.contrib.contenttypes import generic from suit.widgets import LinkedSelect from django.core.exceptions import PermissionDenied -from django.core.urlresolvers import reverse +from django.core.urlresolvers import reverse, NoReverseMatch import django_evolution @@ -78,6 +78,17 @@ class PlStackTabularInline(admin.TabularInline): # the selflink field, we override __init__ to modify self.fields and # self.readonly_fields. + self.setup_selflink() + + def setup_selflink(self): + reverse_path = "admin:%s_change" % (self.model._meta.db_table) + try: + url = reverse(reverse_path, args=(0,)) + except NoReverseMatch: + # We don't have an admin for this object, so don't create the + # selflink. + return + if (self.fields is None): self.fields = [] for f in self.model._meta.fields: @@ -94,11 +105,11 @@ class PlStackTabularInline(admin.TabularInline): def selflink(self, obj): if obj.id: - reverse_path = "admin:%s_change" % (self.model._meta.db_table) - url = reverse(reverse_path, args =(obj.id,)) + reverse_path = "admin:%s_change" % (self.model._meta.db_table) + url = reverse(reverse_path, args =(obj.id,)) return "Details" % str(url) else: - return "Not present" + return "Not present" selflink.allow_tags = True selflink.short_description = "Details"