django-ckeditor由于模板路径问题而失败

时间:2019-02-19 14:10:35

标签: django ckeditor

我刚刚通过安装django-ckeditor将其添加到我的django项目中:

pip install django-ckeditor

将其添加到INSTALLED_APPS,并添加上传路径:

CKEDITOR_UPLOAD_PATH = "ckeditor_uploads/"

运行manage.py collecstatic,它仅添加了两个文件,并将URL添加到了我的url.py

url(r'^ckeditor/', include('ckeditor_uploader.urls')),

我不确定自己是否在这里不缺少任何东西。

然后,我创建了一个非常简单的模型,如下所示:

class BlogPost(models.Model):
    title = models.CharField(max_length=255, blank=False, null=False)
    body = RichTextField(blank=False, null=False)

当我尝试在管理工具上添加新记录时,出现此错误:

  

TemplateDoesNotExist位于/​​ admin / core / blogpost / add /

     

ckeditor / widget.html

模板加载器事后查看如下:

Template-loader postmortem
Django tried loading these templates, in this order:

Using engine django:

django.template.loaders.filesystem.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\django\forms\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\core\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\django\contrib\admin\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\django\contrib\auth\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\rest_framework\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\reversion\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\colorfield\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\ckeditor_uploader\templates\ckeditor\widget.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\pupeno\projectx\venv\lib\site-packages\django_extensions\templates\ckeditor\widget.html (Source does not exist)

最后一行之前的行是相关的,它试图从ckeditor/widget.html加载ckeditor_uploader,但是widget.html出现在ckeditor中,而不是ckeditor_uploader:< / p>

enter image description here

有什么想法吗?

我也尝试将字段转换为RichTextUploadingField,但是我遇到了同样的错误。

5 个答案:

答案 0 :(得分:2)

即使我也遇到了同样的问题。请按照我的步骤操作。它对我以及我的许多朋友都有效。

请记住,它也适用于生产级别,因为我在线托管了许多 django 应用程序。

pip 安装 django-ckeditor

之后

第一步:在models.py里面写

from ckeditor.fields import RichTextField
class BlogPost(models.Model):
    title = models.CharField(max_length=255, blank=False, null=False)
    body = RichTextField(blank=False, null=False)

步骤 2: 运行命令 python manage.py makemigrations

步骤 3: 运行命令 python manage.py migrate

第 4 步:在 admin.py 中写入

from .models import BlogPost
admin.site.register(BlogPost)

第 4 步:我在 settings.py 的 installed_apps 中添加了 “ckeditor”

步骤 5: 运行命令 python manage.py collectstatic

它会要求您覆盖现有文件并输入

确保你的目录结构看起来像

make sure your directory structure look like

第 6 步:将 ckeditor 文件夹复制到控制面板查找的根静态文件夹中

就我而言,我必须将 ckditor 文件夹复制到另一个名为 public_html

我将 ckeditor 文件夹复制到 public_html/static/

enter image description here

全部完成

答案 1 :(得分:0)

问题是我向安装的应用程序中添加了ckeditor_uploader而不是ckeditor

答案 2 :(得分:0)

我有同样的问题。我将ckeditor添加到settings.py

的已安装应用中

答案 3 :(得分:0)

即使我遇到了同样的问题。 阅读文档后,我在 urls.py installed_apps 中添加了“ ckeditor_uploader ”。

然后,他们终于意识到并仅在 settings.py installed_apps 和“ ckeditor_uploader ”中添加了“ ckeditor ”在 urls.py

答案 4 :(得分:0)

您在INSTALLED_APPS中都需要两个应用程序:

INSTALLED_APPS = [
  ...
  'ckeditor',
  'ckeditor_uploader'
  ...
]