一般django后台的文本编辑器比较简单,所以增加ueditor编辑器。
ueditor编辑是百度开发开源产品,官网没django版本。
django版本下载地址
解压后将 DjangoUeditor 文件夹复制到django项目目录下,跟app目录同级
开始修改 :
url.py文件
导入 from DjangoUeditor import urls as DjangoUeditor_urls
增加路由 url(r'^ueditor/', include(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可以使用。
阅读(11961) | 评论(0) | 转发(0) |