diff --git a/tests/test_widgets.py b/tests/test_widgets.py
index 9cb68843..35d4c540 100644
--- a/tests/test_widgets.py
+++ b/tests/test_widgets.py
@@ -124,6 +124,25 @@ def test_tinymce_widget_media(self):
],
)
+ def test_widget_media_applied_cache_suffix(self):
+ tinymce_version = "6.8"
+
+ orig_config = tinymce.settings.DEFAULT_CONFIG
+ with patch.dict(
+ tinymce.settings.DEFAULT_CONFIG,
+ {**orig_config, "cache_suffix": f"?ver={tinymce_version}"},
+ ):
+ widget = TinyMCE()
+
+ self.assertEqual(list(widget.media.render_css()), [])
+ self.assertEqual(
+ widget.media.render_js(),
+ [
+ f'',
+ f'',
+ ],
+ )
+
def test_tinymce_widget_required(self):
"""
The TinyMCE widget should never output the required HTML attribute, even
diff --git a/tinymce/widgets.py b/tinymce/widgets.py
index 65f91e0d..27809067 100644
--- a/tinymce/widgets.py
+++ b/tinymce/widgets.py
@@ -16,7 +16,7 @@
from django.core.serializers.json import DjangoJSONEncoder
from django.forms.utils import flatatt
from django.urls import reverse
-from django.utils.html import escape
+from django.utils.html import escape, format_html
from django.utils.safestring import mark_safe
from django.utils.translation import get_language, gettext as _, to_locale
@@ -114,6 +114,18 @@ def _media(self):
media = property(_media)
+ def _render_js(self):
+ revision_parameter = tinymce.settings.DEFAULT_CONFIG.get("cache_suffix", "")
+
+ return [
+ format_html(
+ '', (self.absolute_path(path)), revision_parameter
+ )
+ for path in self._js
+ ]
+
+ forms.widgets.Media.render_js = _render_js
+
class AdminTinyMCE(TinyMCE, admin_widgets.AdminTextareaWidget):
pass