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
# 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:
def selflink(self, obj):
if obj.id:
- reverse_path = "admin:%s_change" % (self.model._meta.db_table)\r
- url = reverse(reverse_path, args =(obj.id,))\r
+ reverse_path = "admin:%s_change" % (self.model._meta.db_table)
+ url = reverse(reverse_path, args =(obj.id,))
return "<a href='%s'>Details</a>" % str(url)\r
else:\r
- return "Not present"
+ return "Not present"\r
selflink.allow_tags = True
selflink.short_description = "Details"