django-quill-editor
Integrate Quill editor with Django project.
What it is and what it does
django-quill-editor wraps Quill.js, a popular JavaScript rich-text editor, as a Django form field and admin widget. It handles static file inclusion automatically and requires no configuration beyond adding the app to INSTALLED_APPS and using QuillField in your model. The editor works in both regular Django forms and ModelForms, and integrates seamlessly into the Django admin interface.
The package is straightforward to set up: add QuillField to a model, register it in admin, and the editor appears. However, the documentation includes a critical security warning: content stored by django-quill-editor is marked as safe HTML by Django and will not be escaped when rendered, creating an XSS vulnerability if untrusted users can edit the content. This makes it suitable only for internal or admin-only use cases where all editors are trusted.
Use it for:
- Add a rich-text editor to Django admin for trusted staff to compose formatted content without writing HTML.
- Build internal content management tools where only authorized users edit formatted text fields.
- Create a simple blog or documentation platform with a WYSIWYG editor in ModelForms for authenticated users.
- Replace plain textarea fields in Django forms with a visual editor for better user experience in admin-only applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Integrates Quill.js, a rich-text WYSIWYG editor, into Django forms and admin sites with minimal configuration and no static file setup required.
Yes, if you need a Quill editor in Django admin or internal forms and your users are all trusted. The setup is genuinely simple and the install friction is minimal. No if your application accepts user-generated content from the public, because the XSS warning in the documentation is explicit and unresolved—you would need to sanitize output separately, which defeats the convenience of the package.
Install
django-quill-editor on PyPI
pip
pip install django-quill-editoruv
uv add django-quill-editorpoetry
poetry add django-quill-editorInstalling django-quill-editor
Before you install
Low install friction—a single pure-Python dependency on django. Maintenance is dormant: last release was 2024-09-20 and last commit 2025-01-14, so the package is not actively developed but remains functional on current Python and Django versions.
License in practice
MIT license is permissive and imposes no significant restrictions on use or redistribution.
Quickstart
pip install django-quill-editor
# In settings.py
INSTALLED_APPS = [
'django_quill',
]
# In models.py
from django_quill.fields import QuillField
class MyModel(models.Model):
content = QuillField()
Requires Python >3.8 and Django 3.1 or higher; the package's own documentation warns that content is marked_safe and can be exploited for XSS attacks—only authorized administrators should use it in important projects.
Verify before relying
- Whether the package's XSS warning applies only when user input is untrusted or in all contexts where content is displayed.
- Current compatibility with Django versions beyond 4.2 (the latest classifier listed).
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — django |
| Maintenance | dormant — 693 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,929/month — #14,767 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_quill_editor-0.1.42-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-tinymcedjango-tinymce provides a Django form widget…
copyleft · top 5,000 on PyPI
quill-deltaImplements operational transformation for Quill…
permissive · top 15,000 on PyPI
streamlit-quillEmbeds a React Quill rich-text editor component…
unclear · top 15,000 on PyPI
django-ckeditorIntegrates CKEditor 4.18.0 rich-text editing…
permissive · top 5,000 on PyPI
django-json-widgetProvides a rich JSON editor widget for Django's…
permissive · top 5,000 on PyPI
django-jsonformProvides a user-friendly JSON editing form…
permissive · top 15,000 on PyPI
django-summernoteEmbeds the Summernote WYSIWYG editor into…
permissive · top 15,000 on PyPI
django-aceIntegrates the ACE code editor into Django…
permissive · top 15,000 on PyPI
django-markdownxDjango MarkdownX provides a Markdown editor…
permissive · top 15,000 on PyPI
draftjs_exporterConverts Draft.js ContentState (a rich text…
permissive · top 5,000 on PyPI