1.下載kindeditor
網址:http://kindeditor.net/demo.php
2.解壓到項目中
地址:\static\js\kindeditor-4.1.10
3.刪除沒用的文件
例如:example,php,asp等
4.在須要使用富文本編輯器的model中定義meta類:php
class Media: js = ( '/static/js/kindeditor-4.1.10/kindeditor-min.js', '/static/js/kindeditor-4.1.10/lang/zh_CN.js', '/static/js/kindeditor-4.1.10/config.js', )
5.在kindeditor-4.1.10目錄中定義config.js文件:django
KindEditor.ready(function(K) { K.create('textarea[name=須要使用富文本的字段名]',{ width:'800px', height:'200px',
uploadJson: '/util/upload/kindeditor', }); });
6.在urls.py中定義文件上傳的處理器:json
from util.upload import upload_image url(r'^util/upload/(?P<dir_name>[^/]+)$', upload_image, name='upload_image'),
7.在settings.py中定義文件上傳的目錄以下:app
MEDIA_URL = '/uploads/' MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
8.處理upload的py文件:編輯器
# -*- coding: utf-8 -*- from django.http import HttpResponse from django.conf import settings from django.views.decorators.csrf import csrf_exempt import os import uuid import json import datetime as dt @csrf_exempt def upload_image(request, dir_name): ################## # kindeditor圖片上傳返回數據格式說明: # {"error": 1, "message": "出錯信息"} # {"error": 0, "url": "圖片地址"} ################## result = {"error": 1, "message": "上傳出錯"} files = request.FILES.get("imgFile", None) if files: result =image_upload(files, dir_name) return HttpResponse(json.dumps(result), content_type="application/json") #目錄建立 def upload_generation_dir(dir_name): today = dt.datetime.today() dir_name = dir_name + '/%d/%d/' %(today.year,today.month) if not os.path.exists(settings.MEDIA_ROOT + dir_name): os.makedirs(settings.MEDIA_ROOT + dir_name) return dir_name # 圖片上傳 def image_upload(files, dir_name): #容許上傳文件類型 allow_suffix =['jpg', 'png', 'jpeg', 'gif', 'bmp'] file_suffix = files.name.split(".")[-1] if file_suffix not in allow_suffix: return {"error": 1, "message": "圖片格式不正確"} relative_path_file = upload_generation_dir(dir_name) path=os.path.join(settings.MEDIA_ROOT, relative_path_file) if not os.path.exists(path): #若是目錄不存在建立目錄 os.makedirs(path) file_name=str(uuid.uuid1())+"."+file_suffix path_file=os.path.join(path, file_name) file_url = settings.MEDIA_URL + relative_path_file + file_name open(path_file, 'wb').write(files.file.read()) # 保存圖片 return {"error": 0, "url": file_url}