django CMS Text CKEditor
raw JSON → 5.1.7 verified Fri May 01 auth: no python deprecated
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).
pip install djangocms-text-ckeditor Common errors
error Could not find module 'djangocms_text_ckeditor.plugins' ↓
cause Import path for the plugin changed from 'plugins' to 'cms_plugins' in version 4.x.
fix
Use 'from djangocms_text_ckeditor.cms_plugins import TextPlugin'
error 'str' object has no attribute 'body' ↓
cause The HTMLField triggers a recursion when saving a model with a __str__ method that returns the field itself.
fix
Change model's __str__ to return a different field, e.g., 'def __str__(self): return self.title'
error CKEditor widget not showing, just a plain textarea ↓
cause django CMS toolbar is not loaded because the placeholder is rendered without CMS context (e.g., in list views).
fix
Ensure the page is rendered with '{% render_placeholder %}' in a CMS page template or use a CMS frontend editor.
Warnings
breaking Repository is archived. No further updates or security fixes will be released. Migrate to a maintained alternative (e.g., djangocms-text, django-ckeditor). ↓
fix Consider switching to djangocms-text or django-ckeditor for continued support.
deprecated CKEditor 4 is used; it reached end-of-life in 2023. No updates for security vulnerabilities will be provided. ↓
fix Migrate to CKEditor 5 (e.g., use django-ckeditor-5).
gotcha Inline editing may break on touch devices. Use django CMS 5+ for the fix, or disable inline editing via CMS_TOOLBAR_SIMPLE = True. ↓
fix Upgrade to 5.1.1+ or use CMS_TOOLBAR_SIMPLE = True in settings.
gotcha The HTMLField field uses the model's __str__ method when saving; ensure your model's __str__ returns a string or use the 'sanitize' parameter. ↓
fix Override __str__ on models that use HTMLField or set sanitize=False.
Imports
- TextPlugin wrong
from djangocms_text_ckeditor.plugins import TextPlugincorrectfrom djangocms_text_ckeditor.cms_plugins import TextPlugin - HTMLField
from djangocms_text_ckeditor.fields import HTMLField - TinyMCEWidget (TinyMCE is NOT included) wrong
from tinymce.widgets import TinyMCEWidgetcorrectfrom djangocms_text_ckeditor.widgets import TinyMCEWidget
Quickstart
INSTALLED_APPS = [
...
'djangocms_text_ckeditor',
]
CKEDITOR_SETTINGS = {
'language': '{{ language }}',
'toolbar': 'CMS',
'skin': 'moono-lisa',
}
# In a template:
{% load cms_tags %}
{% placeholder "content" %}