Django의 풍부한 텍스트 편집에 그림 추가

3432 단어 Django
풍부한 텍스트 편집기를 어떻게 추가하는지 참고 클릭 링크 열기
위의 config.js:
KindEditor.ready(function(K) {
        K.create('textarea[name=detail]',{
            width:800,
            height:200,
            uploadJson: '/admin/upload/kindeditor'
        });
});

마지막 줄은 URL 설정입니다. 즉 파일이 업로드될 때의 URL입니다.
다음 미디어 구성root
#Media_url
MEDIA_URL = 'static/images/uploads/'

MEDIA_ROOT = os.path.join(BASE_DIR,'images/upload/') #  upload    /      


다음은 urls에 설정합니다.py에서 맵 설정
추가:
url(r'uploads/(?P.*)$',
        'django.views.static.serve',
        {'document_root':settings.MEDIA_ROOT,}),
url(r'^admin/upload/(?P[^/]+)$',
        upload_image,name='upload_image'),
    urlpatterns

다음view 설정은 다음 코드를views에 붙여넣고 urls로 가져옵니다
#coding:utf-8
#!/usr/bin/env python

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):
    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):
    # print dir_name, '----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','git','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)
    # print relative_path_file, '-----relative_path_file'
    path = os.path.join(settings.MEDIA_ROOT,relative_path_file)
    # print path, '----------path'
    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}

그림 추가 단추를 누르면 그림을 풍부한 텍스트 편집기에 추가할 수 있습니다
오류 처리:
csrf_token 오류
kindeditor에서.js에서 4155 줄에 추가하기;
// NEW CODE  
        var csrfitems = document.getElementsByName("csrfmiddlewaretoken");
        var csrftoken = "";
        if(csrfitems.length > 0)
        {
                 csrftoken = csrfitems[0].value;
         }

        // END

됐습니다.

좋은 웹페이지 즐겨찾기