django-ckeditor
Django admin CKEditor integration.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires running `./manage.py collectstatic` to copy CKEditor static assets.
- May need manual CKEDITOR_BASEPATH configuration when using asset pipelines or ManifestStaticFilesStorage.
- Low install friction with two runtime dependencies.
License · maintenance · safety
permissive license (permissive) — Permissive license allows broad use and modification. No specific SPDX or raw license text provided in metadata, but classifier indicates BSD-compatible terms.
last release 2025-06-06 (434 days) · last repo commit 2025-06-06 · 2,457 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 831,384 downloads/mo, #4,944 on PyPI
Alternatives
Verify before relying
pip install django-ckeditor
# In settings.py
INSTALLED_APPS = ['ckeditor', ...]
# In models.py
from ckeditor.fields import RichTextField
class Article(models.Model):
content = RichTextField()- 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.
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 on it.
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
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.
Requires running `./manage.py collectstatic` to copy CKEditor static assets. May need manual CKEDITOR_BASEPATH configuration when using asset pipelines or ManifestStaticFilesStorage.
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()
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 | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesDjangodjango-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 |
| Classifiers | Framework :: DjangoFramework :: Django :: 3.2Framework :: Django :: 4.1Framework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Internet :: WWW/HTTP :: Dynamic Content |
Evidence: django_ckeditor-6.7.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ckeditor django integration”
- django-ckeditorIntegrates CKEditor 4.18.0 rich-text editing into Django admin and…
- djangocms-text-ckeditorIntegrates CKEditor (v4.17.2) as a text editing plugin for django…
- django-ckeditor-5Integrates CKEditor 5, a modern rich-text editor, into Django models…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also django-ckeditor-5 · django-js-asset · django-markdownx · djangocms-text-ckeditor · django-summernote · django-tinymce · django-quill-editor · django-ace · django-jsoneditor · django-cloudinary-storage