Don't error out when an object doesn't provide a get_absolute_url
method. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -1,23 +1,28 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
from django.utils.encoding import force_text
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
from .classes import EventType
|
from .classes import EventType
|
||||||
|
|
||||||
|
|
||||||
def event_object_link(entry, attribute='target'):
|
def event_object_link(entry, attribute='target'):
|
||||||
|
label = ''
|
||||||
|
url = '#'
|
||||||
|
obj_type = ''
|
||||||
|
|
||||||
obj = getattr(entry, attribute)
|
obj = getattr(entry, attribute)
|
||||||
|
|
||||||
if obj:
|
if obj:
|
||||||
obj_type = '{}: '.format(obj._meta.verbose_name)
|
obj_type = '{}: '.format(obj._meta.verbose_name)
|
||||||
else:
|
if hasattr(obj, 'get_absolute_url'):
|
||||||
obj_type = ''
|
url = obj.get_absolute_url()
|
||||||
|
label = force_text(obj)
|
||||||
|
|
||||||
return mark_safe(
|
return mark_safe(
|
||||||
'<a href="%(url)s">%(obj_type)s%(label)s</a>' % {
|
'<a href="%(url)s">%(obj_type)s%(label)s</a>' % {
|
||||||
'url': obj.get_absolute_url() if obj else '#',
|
'url': url, 'label': label, 'obj_type': obj_type
|
||||||
'label': obj or '', 'obj_type': obj_type
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user