1. 安裝
pip install django-ckeditor
2. 添加應用
在INSTALLED_APPS中添加
INSTALLED_APPS = [
...
'ckeditor', # 富文本編輯器
'ckeditor_uploader', # 富文本編輯器上傳圖片模塊
...
]
3. 添加CKEditor設置
在settings/dev.py中添加
# 富文本編輯器ckeditor配置
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'full', # 工具條功能
'height': 300, # 編輯器高度
# 'width': 300, # 編輯器寬
},
}
CKEDITOR_UPLOAD_PATH = '' # 上傳圖片保存路徑,使用了FastDFS,所以此處設爲''
4. 添加ckeditor路由
在總路由中添加
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
5. 爲模型類添加字段
ckeditor提供了兩種類型的Django模型類字段
ckeditor.fields.RichTextField
不支持上傳文件的富文本字段ckeditor_uploader.fields.RichTextUploadingField
支持上傳文件的富文本字段
在商品模型類(SPU)中,要保存商品的詳細介紹、包裝信息、售後服務,這三個字段需要作爲富文本字段
from ckeditor.fields import RichTextField
from ckeditor_uploader.fields import RichTextUploadingField
class Goods(BaseModel):
"""
商品SPU
"""
...
desc_detail = RichTextUploadingField(default='', verbose_name='詳細介紹')
desc_pack = RichTextField(default='', verbose_name='包裝信息')
desc_service = RichTextUploadingField(default='', verbose_name='售後服務')
6. 修改Bug
我們將通過Django上傳的圖片保存到了FastDFS中,而保存在FastDFS中的文件名沒有後綴名,ckeditor在處理上傳後的文件名按照有後綴名來處理,所以會出現bug錯誤,
修正方法
找到虛擬環境目錄中的ckeditor_uploader/views.py文件,如
~/.virtualenvs/虛擬環境名/lib/python3.5/site-packages/ckeditor_uploader/views.py
將第95行代碼修改如下: