富文本编辑器django-ckeditor
1.安装django-ckeditor包
pip install django-ckeditor
2.在项目settings.py中注册
INSTALLED_APPS = [
'ckeditor',
'ckeditor_uploader'
]
3.在项目的urls.py中添加路由
url(r'^ckeditor/', include('app01.ckeditor_urls'))
4.将models.py中需要富文本编辑器的字段改为RichTextUploadingField
from ckeditor_uploader.fields import RichTextUploadingField
class ArticleDetail(models.Model):
"""
文章详情表
"""
content = RichTextUploadingField(verbose_name='文章详情')
5.创建ModelForm
class ArticleDetailForm(forms.ModelForm):
class Meta:
model = models.ArticleDetail
fields = '__all__'
form_obj = ArticleDetailForm()
6.模板中使用
{{ form_obj.content }}
# 引入静态文件
{% load static %}
<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
7.上传文件需要取消认证
# 找到ckeditor的源码并复制到一个新的ckeditor_urls.py
'''源码路径为
ckeditor_upload
/urls.py'''
# 将内容中的 staff_member_required 取消掉
# 原内容
urlpatterns = [
url(r"^upload/", staff_member_required(views.upload), name="ckeditor_upload"),
url(
r"^browse/",
never_cache(staff_member_required(views.browse)),
name="ckeditor_browse",
),
]
# 改为
from __future__ import absolute_import
from django.conf.urls import url
from django.views.decorators.cache import never_cache
from ckeditor_uploader import views
urlpatterns = [
url(r"^upload/", views.upload, name="ckeditor_upload"),
url(
r"^browse/",
never_cache(views.browse),
name="ckeditor_browse",
),
]
uploader.fields import RichTextUploadingField
class ArticleDetail(models.Model):
"""
文章详情表
"""
content = RichTextUploadingField(verbose_name='文章详情')
5.创建ModelForm
class ArticleDetailForm(forms.ModelForm):
class Meta:
model = models.ArticleDetail
fields = '__all__'
form_obj = ArticleDetailForm()
6.模板中使用
{{ form_obj.content }}
# 引入静态文件
{% load static %}
<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
7.上传文件需要取消认证
# 找到ckeditor的源码并复制到一个新的ckeditor_urls.py
'''源码路径为
ckeditor_upload
urls.py'''
# 将内容中的 staff_member_required 取消掉
# 原内容
urlpatterns = [
url(r"^upload/", staff_member_required(views.upload), name="ckeditor_upload"),
url(
r"^browse/",
never_cache(staff_member_required(views.browse)),
name="ckeditor_browse",
),
]
# 改为
from __future__ import absolute_import
from django.conf.urls import url
from django.views.decorators.cache import never_cache
from ckeditor_uploader import views
urlpatterns = [
url(r"^upload/", views.upload, name="ckeditor_upload"),
url(
r"^browse/",
never_cache(views.browse),
name="ckeditor_browse",
),
]