{"id":23615,"library":"djangocms-text-ckeditor","title":"django CMS Text CKEditor","description":"A text plugin for django CMS that provides a CKEditor-based rich text editor. Version 5.1.7 is the current release and previous release (the repository has been archived). Requires Python >=3.7 and Django CMS 3.7+ (including 4.x and 5.x).","status":"deprecated","version":"5.1.7","language":"python","source_language":"en","source_url":"https://github.com/django-cms/djangocms-text-ckeditor","tags":["django-cms","richtext","ckeditor","cms-plugin","archived"],"install":[{"cmd":"pip install djangocms-text-ckeditor","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required as the parent CMS framework.","package":"django-cms","optional":false},{"reason":"Optional plugin used when creating links with images inside CKEditor.","package":"djangocms-picture","optional":true}],"imports":[{"note":"The module path changed around version 4.x; using 'plugins' instead of 'cms_plugins' will raise ImportError.","wrong":"from djangocms_text_ckeditor.plugins import TextPlugin","symbol":"TextPlugin","correct":"from djangocms_text_ckeditor.cms_plugins import TextPlugin"},{"note":"","symbol":"HTMLField","correct":"from djangocms_text_ckeditor.fields import HTMLField"},{"note":"djangocms-text-ckeditor bundles its own TinyMCEWidget name but actually uses CKEditor. Import from the wrong package leads to missing configuration.","wrong":"from tinymce.widgets import TinyMCEWidget","symbol":"TinyMCEWidget (TinyMCE is NOT included)","correct":"from djangocms_text_ckeditor.widgets import TinyMCEWidget"}],"quickstart":{"code":"INSTALLED_APPS = [\n    ...\n    'djangocms_text_ckeditor',\n]\n\nCKEDITOR_SETTINGS = {\n    'language': '{{ language }}',\n    'toolbar': 'CMS',\n    'skin': 'moono-lisa',\n}\n\n# In a template:\n{% load cms_tags %}\n{% placeholder \"content\" %}","lang":"python","description":"Add 'djangocms_text_ckeditor' to INSTALLED_APPS, configure CKEDITOR_SETTINGS, and use the placeholder in templates."},"warnings":[{"fix":"Consider switching to djangocms-text or django-ckeditor for continued support.","message":"Repository is archived. No further updates or security fixes will be released. Migrate to a maintained alternative (e.g., djangocms-text, django-ckeditor).","severity":"breaking","affected_versions":">=5.1.7"},{"fix":"Migrate to CKEditor 5 (e.g., use django-ckeditor-5).","message":"CKEditor 4 is used; it reached end-of-life in 2023. No updates for security vulnerabilities will be provided.","severity":"deprecated","affected_versions":"all"},{"fix":"Upgrade to 5.1.1+ or use CMS_TOOLBAR_SIMPLE = True in settings.","message":"Inline editing may break on touch devices. Use django CMS 5+ for the fix, or disable inline editing via CMS_TOOLBAR_SIMPLE = True.","severity":"gotcha","affected_versions":"<=5.1.0"},{"fix":"Override __str__ on models that use HTMLField or set sanitize=False.","message":"The HTMLField field uses the model's __str__ method when saving; ensure your model's __str__ returns a string or use the 'sanitize' parameter.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from djangocms_text_ckeditor.cms_plugins import TextPlugin'","cause":"Import path for the plugin changed from 'plugins' to 'cms_plugins' in version 4.x.","error":"Could not find module 'djangocms_text_ckeditor.plugins'"},{"fix":"Change model's __str__ to return a different field, e.g., 'def __str__(self): return self.title'","cause":"The HTMLField triggers a recursion when saving a model with a __str__ method that returns the field itself.","error":"'str' object has no attribute 'body'"},{"fix":"Ensure the page is rendered with '{% render_placeholder %}' in a CMS page template or use a CMS frontend editor.","cause":"django CMS toolbar is not loaded because the placeholder is rendered without CMS context (e.g., in list views).","error":"CKEditor widget not showing, just a plain textarea"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}