如何删除使用django ckeditor上传的图像?

如何删除使用django ckeditor上传的图像?,django,ckeditor,django-ckeditor,Django,Ckeditor,Django Ckeditor,我在Django管理界面的CKEditor中上传了一些图像。我可以通过单击编辑器中的“图像”按钮来浏览和选择图像,然后在弹出的窗口中单击“浏览服务器”。以下是弹出窗口的屏幕截图: 我的问题是:如何删除服务器上的图像?恐怕这在ckeditor上是不可能的(至少我看不到这种现成的功能) 您可以使用django文件管理器 例如,.不幸的是,这是事实。Django ckeditor没有为该问题提供任何内置解决方案。有关上载文件的信息不会存储在任何位置 如果你想保留它们,你必须自己做 使用覆盖的删除方

我在Django管理界面的CKEditor中上传了一些图像。我可以通过单击编辑器中的“图像”按钮来浏览和选择图像,然后在弹出的窗口中单击“浏览服务器”。以下是弹出窗口的屏幕截图:


我的问题是:如何删除服务器上的图像?

恐怕这在ckeditor上是不可能的(至少我看不到这种现成的功能)

您可以使用django文件管理器


例如,.

不幸的是,这是事实。Django ckeditor没有为该问题提供任何内置解决方案。有关上载文件的信息不会存储在任何位置

如果你想保留它们,你必须自己做

使用覆盖的删除方法创建适当的数据模型(或使用任何可为您处理文件删除的现成“智能字段”):

提供您自己的“上载”(以及可选的“浏览”)视图实现,该视图将用于存储事务:

from django.conf import settings
from django.contrib.admin.views.decorators import staff_member_required
from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_exempt
from ckeditor_uploader.views import upload, browse
from .models import UploadedFile
import re

@staff_member_required
@csrf_exempt
def ckeditor_upload_wrapper(request, *args, **kwargs):
    response = upload(request, *args, **kwargs)

    if b"Invalid" not in response.content:
        try:
            matched_regex = re.search("callFunction\(\d, '(.*)'\);", str(response.content))
            file_location = matched_regex.group(1).lstrip(settings.MEDIA_URL)
            UploadedFile(uploaded_file=file_location).save()
        except Exception:
            pass
    return response

@staff_member_required
@csrf_exempt
@never_cache
def ckeditor_browse_wrapper(request, *args, **kwargs):
    return browse(request, *args, **kwargs)
更改URL.py中的默认重定向:

...
from app.views import ckeditor_upload_wrapper, ckeditor_browse_wrapper

urlpatterns = [
    url(r'^admin/', admin.site.urls),

    #url(r'^ckeditor/', include('ckeditor_uploader.urls')),
    url(r'^ckeditor/upload/', ckeditor_upload_wrapper, name='ckeditor_upload'),
    url(r'^ckeditor/browse/', ckeditor_browse_wrapper, name='ckeditor_browse'),
    ...
]
就这些。。。现在,如果您注册新的上传文件模型,您将授予直接从Django管理面板浏览、搜索和删除任何上传图片的功能


(此解决方案是为Django 1.10实现的,扩展名为Django ckeditor 5.3)

这样一个被低估的答案!我本想做类似的事情,但你省去了我写出大部分逻辑的麻烦。
...
from app.views import ckeditor_upload_wrapper, ckeditor_browse_wrapper

urlpatterns = [
    url(r'^admin/', admin.site.urls),

    #url(r'^ckeditor/', include('ckeditor_uploader.urls')),
    url(r'^ckeditor/upload/', ckeditor_upload_wrapper, name='ckeditor_upload'),
    url(r'^ckeditor/browse/', ckeditor_browse_wrapper, name='ckeditor_browse'),
    ...
]