diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py
index d33743cd4a3..e836477111e 100644
--- a/netbox/extras/scripts.py
+++ b/netbox/extras/scripts.py
@@ -500,6 +500,8 @@ def _log(self, message, obj=None, level=LogLevelChoices.LOG_DEFAULT):
'time': timezone.now().isoformat(),
'status': level,
'message': str(message),
+ 'obj': str(obj) if obj else None,
+ 'url': obj.get_absolute_url() if hasattr(obj, 'get_absolute_url') else None,
})
# Record to the system log
diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py
index 2dbf93b2f7b..c243ac00045 100644
--- a/netbox/extras/tables/tables.py
+++ b/netbox/extras/tables/tables.py
@@ -1,6 +1,7 @@
import json
import django_tables2 as tables
+from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _
from extras.models import *
@@ -564,6 +565,12 @@ class Meta(BaseTable.Meta):
'index', 'time', 'status', 'message',
)
+ def render_object(self, value, record):
+ return format_html("{}", record['url'], value)
+
+ def render_url(self, value):
+ return format_html("{}", value, value)
+
class ReportResultsTable(BaseTable):
index = tables.Column(
@@ -594,3 +601,9 @@ class Meta(BaseTable.Meta):
fields = (
'index', 'method', 'time', 'status', 'object', 'url', 'message',
)
+
+ def render_object(self, value, record):
+ return format_html("{}", record['url'], value)
+
+ def render_url(self, value):
+ return format_html("{}", value, value)
diff --git a/netbox/extras/views.py b/netbox/extras/views.py
index 3a82539fb9f..b9fbf6803ad 100644
--- a/netbox/extras/views.py
+++ b/netbox/extras/views.py
@@ -1201,6 +1201,8 @@ def get_table(self, job, request, bulk_actions=True):
'time': log.get('time'),
'status': log.get('status'),
'message': log.get('message'),
+ 'object': log.get('obj'),
+ 'url': log.get('url'),
}
data.append(result)