diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 79b7936b2..c8474b01d 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -2104,7 +2104,8 @@ class DeviceRenderConfigView(generic.ObjectView): # If a direct export has been requested, return the rendered template content as a # downloadable file. if request.GET.get('export'): - response = HttpResponse(context['rendered_config'], content_type='text') + content = context['rendered_config'] or context['error_message'] + response = HttpResponse(content, content_type='text') filename = f"{instance.name or 'config'}.txt" response['Content-Disposition'] = f'attachment; filename="{filename}"' return response @@ -2122,18 +2123,18 @@ class DeviceRenderConfigView(generic.ObjectView): # Render the config template rendered_config = None + error_message = None if config_template := instance.get_config_template(): try: rendered_config = config_template.render(context=context_data) except TemplateError as e: - msg = _("An error occurred while rendering the template: {error}").format(error=e) - messages.error(request, msg) - rendered_config = msg + error_message = _("An error occurred while rendering the template: {error}").format(error=e) return { 'config_template': config_template, 'context_data': context_data, 'rendered_config': rendered_config, + 'error_message': error_message, } diff --git a/netbox/templates/dcim/device/render_config.html b/netbox/templates/dcim/device/render_config.html index 785939a83..ab2f1c531 100644 --- a/netbox/templates/dcim/device/render_config.html +++ b/netbox/templates/dcim/device/render_config.html @@ -5,7 +5,7 @@ {% block title %}{{ object }} - {% trans "Config" %}{% endblock %} {% block content %} -
{{ rendered_config }}+ {% if config_template %} + {% if rendered_config %} +
{{ rendered_config }}+
{{ rendered_config }}+ {% if config_template %} + {% if rendered_config %} +
{{ rendered_config }}+