diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py index c8afeb090..7bc83b715 100644 --- a/netbox/extras/forms/model_forms.py +++ b/netbox/extras/forms/model_forms.py @@ -76,7 +76,8 @@ class CustomFieldForm(BootstrapMixin, forms.ModelForm): 'type': _( "The type of data stored in this field. For object/multi-object fields, select the related object " "type below." - ) + ), + 'description': _("This will be displayed as help text for the form field. Markdown is supported.") } def __init__(self, *args, **kwargs): diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index abea48032..e6f339e5a 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -28,6 +28,7 @@ from utilities.forms.fields import ( from utilities.forms.utils import add_blank_choice from utilities.forms.widgets import APISelect, APISelectMultiple, DatePicker, DateTimePicker from utilities.querysets import RestrictedQuerySet +from utilities.templatetags.builtins.filters import render_markdown from utilities.validators import validate_regex __all__ = ( @@ -498,7 +499,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): field.model = self field.label = str(self) if self.description: - field.help_text = escape(self.description) + field.help_text = render_markdown(self.description) # Annotate read-only fields if enforce_visibility and self.ui_visibility == CustomFieldVisibilityChoices.VISIBILITY_READ_ONLY: