django-ckeditor
Django admin CKEditor integration.
What it is and what it does
django-ckeditor provides Django form fields and widgets that wrap CKEditor 4.18.0, a JavaScript rich-text editor, for use in Django admin and custom forms. It includes image upload and browsing capabilities, works with django-storages (including S3), and bundles CKEditor language and plugin files. The package requires Django and django-js-asset as runtime dependencies and must be added to INSTALLED_APPS with static files collected via Django's collectstatic command.
The maintainer has published a deprecation notice stating that CKEditor 4 has unfixed security issues and recommends against new use of this package. While the repository remains active and supports modern Django (3.2–5.2) and Python (3.8–3.13) versions, prospective users should evaluate alternatives listed on Django Packages before adopting it for new projects.
Use it for:
- Add rich-text editing to Django admin model forms without writing custom JavaScript.
- Enable image upload and browsing in user-generated content fields with optional per-user access restrictions.
- Integrate CKEditor into custom Django forms with configurable toolbars and plugins.
- Store rich-text content in database fields with automatic HTML rendering support.
- Use S3 or other django-storages backends for uploaded media instead of local filesystem.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Integrates CKEditor 4.18.0 rich-text editing into Django admin and forms, with image upload and browsing support via django-js-asset.
No—the maintainer explicitly recommends against using this package due to unfixed security issues in the underlying CKEditor 4 library. While the package itself has low install friction and broad Django/Python support, the deprecation notice and security concerns outweigh its convenience. Evaluate alternatives on Django Packages before committing to a new project.
Install
django-ckeditor on PyPI
pip
pip install django-ckeditoruv
uv add django-ckeditorpoetry
poetry add django-ckeditorInstalling django-ckeditor
Before you install
Low install friction with two runtime dependencies. Maintenance status is aging—last release was 434 days ago, though the repository remains active and supported across Django 3.2 through 5.2 and Python 3.8–3.13.
License in practice
Permissive license allows broad use and modification. No specific SPDX or raw license text provided in metadata, but classifier indicates BSD-compatible terms.
Quickstart
pip install django-ckeditor
# In settings.py
INSTALLED_APPS = ['ckeditor', ...]
# In models.py
from ckeditor.fields import RichTextField
class Article(models.Model):
content = RichTextField()
Requires running `./manage.py collectstatic` to copy CKEditor static assets. May need manual CKEDITOR_BASEPATH configuration when using asset pipelines or ManifestStaticFilesStorage.
Verify before relying
- Maintainer's deprecation notice recommends against new use due to unfixed CKEditor 4 security issues—current OSV query shows zero recorded vulnerabilities, but this may not reflect all known issues.
- Whether the package's own code has been audited for security beyond the underlying CKEditor 4.18.0 library.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — Django, django-js-asset |
| Maintenance | aging — 434 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 831,384/month — #4,944 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_ckeditor-6.7.3-py3-none-any.whl
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
django-ckeditor-5Integrates CKEditor 5, a modern rich-text…
permissive · top 15,000 on PyPI
django-js-assetAdds script, stylesheet, and JSON tags with…
permissive · top 5,000 on PyPI
django-markdownxDjango MarkdownX provides a Markdown editor…
permissive · top 15,000 on PyPI
djangocms-text-ckeditorIntegrates CKEditor (v4.17.2) as a text editing…
permissive · top 15,000 on PyPI
django-summernoteEmbeds the Summernote WYSIWYG editor into…
permissive · top 15,000 on PyPI
django-tinymcedjango-tinymce provides a Django form widget…
copyleft · top 5,000 on PyPI
django-quill-editorIntegrates Quill.js, a rich-text WYSIWYG…
permissive · top 15,000 on PyPI
django-aceIntegrates the ACE code editor into Django…
permissive · top 15,000 on PyPI
django-jsoneditorProvides a Django form widget for editing JSON…
unclear · top 15,000 on PyPI
django-cloudinary-storageIntegrates Django with Cloudinary to serve…
permissive · top 15,000 on PyPI