Handle cleanly exceptions raised during widget rendering

This commit is contained in:
Jeremy Stretch
2025-11-24 09:55:51 -05:00
parent 6182c0cb95
commit 15e6ae6cca

View File

@@ -1,4 +1,6 @@
from django import template from django import template
from django.utils.safestring import mark_safe
from django.utils.translation import gettext as _
register = template.Library() register = template.Library()
@@ -8,4 +10,16 @@ register = template.Library()
def render_widget(context, widget): def render_widget(context, widget):
request = context['request'] request = context['request']
return widget.render(request) try:
return widget.render(request)
except Exception as e:
message1 = _('An error was encountered when attempting to render this widget:')
message2 = _('Please try reconfiguring the widget, or remove it from your dashboard.')
return mark_safe(f"""
<p>
<span class="text-danger"><i class="mdi mdi-alert"></i></span>
{message1}
</p>
<p class="font-monospace ps-3">{e}</p>
<p>{message2}</p>
""")