Django CKEditor图像上传没有出现

thu*_*ief 7 python django ckeditor

这是Django Ckeditor图像浏览器没有找到图像的副本,但我相信答案是错误的(其中有一个明显的错误,其中包含一个未定义的变量,更不用说缺少Python缩进).

我正在使用Django CKEditor 5.0.3和Django 1.9.6.我可以在我的管理员中上传图片,但它们在管理员中显示为红色X,但不会显示在我的网站上.

我还在苦苦挣扎MEDIA_ROOT,但我觉得我说得对:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

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

CKEDITOR_UPLOAD_PATH = 'uploads/'
CKEDITOR_IMAGE_BACKEND = "pillow"
CKEDITOR_UPLOAD_SLUGIFY_FILENAME = False
Run Code Online (Sandbox Code Playgroud)

urls.py,包括我试图清理链接的答案:

from django.conf import settings
from django.conf.urls import url, include
from django.conf.urls.static import static
from django.contrib import admin
from mainsite.views import HomepageView, AboutView, ContactView
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
    url(r'^admin/', admin.site.urls, name="admin"),
    url(r'^$', HomepageView.as_view(), name="homepage"),
    url(r'^about/', AboutView.as_view(), name="about"),
    url(r'^contact/', ContactView.as_view(), name="contact"),
    url(r'^blog/', include("blog.urls", namespace="blog")),
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

if settings.DEBUG:
    urlpatterns += [
        url(r'^media/(?P<path>.*)$',
            'django.views.static.serve', {
                'document_root': settings.MEDIA_ROOT,
            }
        ),
    ]

urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)

小智 7

安装 ckeditor 后,执行以下操作:

  1. Settings.py中:将“ ckeditor ”和“ ckeditor_uploader ”添加到INSTALLED_APPS中。添加CKEDITOR_UPLOAD_PATH = ' uploads_directory / ' (不要将MEDIA_ROOTupload_directory一起加入,ckeditor 会将 MEDIA_ROOT 作为其根上传目录)

  2. 在模型文件中: USE :from ckeditor_uploader import RichTextUploadingField并修改所需的模型字段以键入RichTextUploadingField

  3. urls.py中:添加re_path(r'^ckeditor/', include('ckeditor_uploader.urls'))urlpatterns中


Mar*_*rcs 6

使用CKEDITOR_UPLOAD_PATH = 'uploads/'make django-ckeditor上传图片/media/uploads/,如:

settings.py:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static/'),
]
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
CKEDITOR_UPLOAD_PATH = 'uploads/'
Run Code Online (Sandbox Code Playgroud)

使用Django的dev服务器时,静态文件是默认提供的,但不是媒体文件,所以你可以强制服务器考虑它们,下面的url配置应该可行.

urls.py:

from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.views.static import serve
from .views import HomeView

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', HomeView.as_view(), name='home'),
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),

# serving media files only on debug mode
if settings.DEBUG:
    urlpatterns += [
        url(r'^media/(?P<path>.*)$', serve, {
            'document_root': settings.MEDIA_ROOT
        }),
    ]
Run Code Online (Sandbox Code Playgroud)

缺少的功能patterns旧的例子是我相信在Django的1.6或1.7使用了旧的功能.

  • 将 CKEDITOR_UPLOAD_PATH 放在 MEDIA_URL 之后很重要,否则您的图片将不会显示。 (2认同)