2.5集成富文本编辑器

2 篇文章 0 订阅
  1. 导入模块 
    pip install django-ckeditor

     

  2. 注册应用
    INSTALLED_APPS = [
        ...
        'ckeditor',  # 富文本编辑器
        'ckeditor_uploader',  # 富文本编辑器上传图片模块
        ...
    ]

     

  3.  添加配置
    # 富文本编辑器ckeditor配置
    CKEDITOR_CONFIGS = {
        'default': {
            'toolbar': 'full',  # 工具条功能
            'height': 300,  # 编辑器高度
            # 'width': 300,  # 编辑器宽
        },
    }
    CKEDITOR_UPLOAD_PATH = ''  # 上传图片保存路径,使用了FastDFS,所以此处设为''

     

  4. 添加路由
    # 总路由处添加
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),

     

  5. 给商品模型类(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. 解决IndexError: list index out of range问题
    1. 原因:通过Django上传的图片保存到了FastDFS中,而保存在FastDFS中的文件名没有后缀名,ckeditor在处理上传后的文件名按照有后缀名来处理,所以会出现bug错误。
    2. 解决方法
      1. 找到虚拟环境目录中的ckeditor_uploader/views.py文件 如:
        ~/.virtualenvs/md/lib/python3.5/site-packages/ckeditor_uploader/views.py

         

      2. 做以下更改
        saved_path = self._save_file(request, uploaded_file)
                if len(str(saved_path).split('.')) > 1:  # 在此处添加一个判断
                    if(str(saved_path).split('.')[1].lower() != 'gif'):
                        self._create_thumbnail_if_needed(backend, saved_path)

         

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值