一般django后台的文本编辑器比较简单,所以增加ueditor编辑器。
ueditor编辑是百度开发开源产品,凯发k8官网下载客户端中心官网没django版本。
django版本下载地址
解压后将 djangoueditor 文件夹复制到django项目目录下,跟app目录同级
开始修改 :
url.py文件
导入 from djangoueditor import urls as djangoueditor_urls
增加路由 )
models 文件
导入 from djangoueditor.models import ueditorfield
对于需要使用编辑器的子段定义
context = ueditorfield('内容',height=300, width=1000, default='', blank=true,imagepath="news", toolbars='full', filepath='files')
其中定义了文本框的大小和字段默认值,imagepath 和filepath 定义图片,视频和文件上传的路径 (相对于 settings.media_root
)
toolbars 定义功能的显示复杂度 一般有 mini,besttome,nomal,full 等选项,具体在djangoueditor.settings中设置
这样就初步可以使用了
但是图片和视频等上传还是不行,上传失败 ,原因是因为上传图片时open的是个路径,当传视频就可以了
这个就需要修改文件djangoueditor.views 文件 修改函数save_upload_file 大概在38行左右
直接修改成这样,根据上传的action进行不同的操作
-
def save_upload_file(postfile,filepath,action):
-
-
if action == 'uploadfile':
-
filepathwrite = filepath'/'str(postfile)
-
elif action == 'uploadimage':
-
filepathwrite = filepath'/'str(postfile)
-
#elif action == 'uploadvideo':
-
# filepathwrite = videofile(filepath,'/video/')
-
else:
-
filepathwrite = filepath
-
-
try:
-
f = open(filepathwrite, 'wb')
-
for chunk in postfile.chunks():
-
f.write(chunk)
-
except exception as e:
-
f.close()
-
return u"写入文件错误:" e.message
-
f.close()
-
return u"success"
ok改完了发现,是可以上传了,对应的文件夹中也有上传图片,但是在对话框中却无法显示图片,对应的路径是错误的,这时候要修改另一个函数
还是修改djangoueditor.views 文件 ,大约在258行,需要重新拼接下返回的图片路径,重新修改 return_info 字典,修改为这样,还是通过上传操作重新定义返回的url
-
import urllib
-
if action == 'uploadvideo':
-
url = urllib.basejoin(usettings.gsettings.media_url, outputpathformat)
-
else:
-
url = urllib.basejoin(usettings.gsettings.media_url, outputpathformat) '/' upload_file_name
-
-
return_info = {
-
'url': url, # 保存后的文件名称
-
'original': upload_file_name, # 原始文件名
-
'type': upload_original_ext,
-
'state': state, # 上传状态,成功时返回success,其他任何值将原样返回至图片上传框中
-
'size': upload_file_size
-
}
这下子就ok了,能够上传图片,视频,文件了,也能基本使用了。不过还有一些比如涂鸦什么的那些由于也用不到,咱未研究。
ok可以使用。
阅读(11860) | 评论(0) | 转发(0) |