Leider ist das wahr. Django-ckeditor bietet keine integrierte Lösung für dieses Problem. Informationen über hochgeladene Dateien werden nirgendwo gespeichert.
Wenn Sie sie behalten wollen - müssen Sie es selbst tun!
Erstellen Sie die entsprechenden Datenmodell mit dem überschrieben löschen Methode (oder eine der bereit „smart Felder“ benutzen, die Entfernung von Dateien für Sie behandeln können, Django delete FileField):
from django.db import models
class UploadedFile(models.Model):
uploaded_file = models.FileField(upload_to=u"storage/")
uploaded_at = models.DateField(editable=False, auto_now_add=True)
def __str__(self):
return os.path.basename(self.uploaded_file.path)
def url(self):
return self.uploaded_file.url
def delete(self, *args, **kwargs):
file_storage, file_path = self.uploaded_file.storage, self.uploaded_file.path
super(UploadedFile, self).delete(*args, **kwargs)
file_storage.delete(file_path)
Bieten Sie Ihren eigenen Umsetzung von "Upload" (und optional "browse") Ansicht, die verwendet werden, Transaktionen merken:
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)
Change default Umleitungen in urls.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'),
...
]
und das ist alles ... Nun, wenn Sie Register Ihre neuen UploadedFile Modell, werden Sie tha Fähigkeit zu durchsuchen, suchen und entfernen gewähren Alle hochgeladenen Bilder direkt aus dem Django Admin-Panel.
(Diese Lösung wurde für
Django 1.10 mit Verlängerungs
django-ckeditor 5.3 implementiert)