Integrate Quill editor with Django project.
Project description
django-quill-editor
django-quill-editor makes Quill.js easy to use on Django Forms and admin sites
- No configuration required for static files!
- The entire code for inserting WYSIWYG editor is less than 30 lines
- It can be used in both admin and Django views
Setup
-
Install
django-quill-editor
to your Python environmentpip install django-quill-editor
-
Add
django_quill
toINSTALLED_APPS
insettings.py
# settings.py INSTALLED_APPS = [ 'django.contrib.admin', ... 'django_quill', ]
Run Sample project
Repo: django-quill-editor-sample
# Clone repo git clone https://github.com/LeeHanYeong/django-quill-editor-sample cd django-quill-editor-sample # Create virtualenv (I used pyenv, but you can use other methods) pyenv virtualenv 3.7.5 django-quill pyenv local django-quill # Install Python packages pip install -r requirements.txt python app/manage.py runserver
Documentation
Documentation for django-quill-editor is located at https://django-quill-editor.readthedocs.io/
Change toolbar configs
Add QUILL_CONFIGS
to the settings.py
QUILL_CONFIGS = { 'default':{ 'theme': 'snow', 'modules': { 'syntax': True, 'toolbar': [ [ {'font': []}, {'header': []}, {'align': []}, 'bold', 'italic', 'underline', 'strike', 'blockquote', {'color': []}, {'background': []}, ], ['code-block', 'link'], ['clean'], ] } } }
Usage
Add QuillField
to the Model class you want to use
# models.py from django.db import models from django_quill.fields import QuillField class QuillPost(models.Model): content = QuillField()
1. Django admin
Just register the Model in admin.py of the app.
from django.contrib import admin from .models import QuillPost @admin.register(QuillPost) class QuillPostAdmin(admin.ModelAdmin): pass
2. Form
-
Add
QuillFormField
to the Form class you want to use -
There are two ways to add CSS and JS files to a template.
-
If there is a Form with QuillField added, add
{{ form.media }}
to the<head>
tag.<head> {{ form.media }} </head>
-
Or, import CSS and JS files directly using
{% include %}
template tags.<head> <!-- django-quill-editor Media --> {% include 'django_quill/media.html' %} </head>
-
# forms.py from django import forms from django_quill.forms import QuillFormField class QuillFieldForm(forms.Form): content = QuillFormField()
# views.py from django.shortcuts import render from .forms import QuillFieldForm def form(request): return render(request, 'form.html', {'form': QuillFieldForm()})
<!-- Template --> <form action="" method="POST">{% csrf_token %} {{ form.content }} </form>
3. ModelForm
Just define and use ModelForm of Model class
# forms.py from django import forms from .models import QuillPost class QuillPostForm(forms.ModelForm): class Meta: model = QuillPost fields = ( 'content', )
# views.py from django.shortcuts import render from .forms import QuillPostForm def model_form(request): return render(request, 'model_form.html', {'form': QuillPostForm()})
<!-- Template --> <form action="" method="POST">{% csrf_token %} {{ form.content }} </form>
Form, ModelForm's Output:
Contributing
As an open source project, we welcome contributions. The code lives on GitHub
Distribution (for owners)
PyPI Release
poetry install # Install PyPI distribution packages
python deploy.py
Sphinx docs
brew install sphinx-doc # macOS
Local
cd docs
make html
# ...
# The HTML pages are in _build/html.
cd _build/html
python -m http.server 3001
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-quill-editor-0.1.15.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd1abd64d9baa67d2bc2898a9bcb66db8c6f95e71b9595e674b4117665bbbdad |
|
MD5 | 4ebfade05bd2459ad65d2bc8b91adc92 |
|
BLAKE2-256 | 1a4bd2c7153f5d8b379f0ca67a1dfff5e84026e7b44758a684dbafd59994a729 |
Hashes for django_quill_editor-0.1.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94d02ad7fd2f06e3b148e53e75bd98c7ea922ba0670d903e4c1560099b7b0392 |
|
MD5 | 21fe97cb7e655b3f59bc64672e565d02 |
|
BLAKE2-256 | 516c5d058623c8f70ee2cfcd6aeff86ae6545c7ae7b81ed2b5f728deada8975f |