在DjangoAdmin中使用KindEditor(上传图片)

一、下载

http://kindeditor.net/down.php

删除asp、asp.net、php、jsp、examples文件夹

拷贝到static目录下

二、配置

kindeditor目录下新建conifg.js

KindEditor.ready(function(K) {
    K.create('#id_content', {
        width: '800px',
        height: '500px',
        uploadJson:'/upload_image',
    });
});

 admin.py

class NoticeAdmin(admin.ModelAdmin):
    class Media:
        js = [
            '/static/plugins/kindeditor/kindeditor-all-min.js',
            '/static/plugins/kindeditor/lang/zh-CN.js',
            '/static/plugins/kindeditor/config.js'
        ]
admin.site.register(Notice, NoticeAdmin)

 views.py

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def upload_image(request):
    allow_suffix = ['jpg', 'png', 'jpeg', 'gif', 'bmp']
    files = request.FILES.get("imgFile", None)
    if files:
        file_suffix = files.name.split(".")[-1]
        if file_suffix not in allow_suffix:
            return JsonResponse({"error": 1, "message": "图片格式不正确"})
        file_name = str(uuid.uuid1()) + "." + file_suffix
        file_path = os.path.join(settings.MEDIA_ROOT, 'image', file_name)  # TODO:上传的路径需要修改
        url_path = os.path.join(settings.MEDIA_URL, 'image', file_name)
        print file_path
        with open(file_path, 'wb') as f:
            f.write(files.file.read())
        return JsonResponse({"error": 0, "url": url_path})

 settings.py

MEDIA_URL = "/upload/"
MEDIA_ROOT = os.path.join(BASE_DIR, "upload")

 urls.py

from django.views.static import serve
url(r'^upload/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT,}),

猜你喜欢

转载自www.cnblogs.com/lb477/p/10820628.html