首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能让CKEditor用ckeditor在Django工作

不能让CKEditor用ckeditor在Django工作
EN

Stack Overflow用户
提问于 2016-06-02 18:09:46
回答 2查看 490关注 0票数 2

首先,请原谅我的英语真的很差,但我会尽我所能解释。

到目前为止,我正在和django-blog-zinnia一起写博客。现在我尝试将CKEditor

Django zinnia-wysiwyg-ckeditor

我按照它的每个文档中的步骤操作,我无法使它工作。

我搜索并检查控制台中的错误,没有什么,可能会忽略一些东西,因为这也是我第一次使用Django。

所以,我是这么做的

  1. 我安装了zinnia-wysiwyg-ckeditordjango-ckeditor
  2. 我在settings.py中添加了应用程序,并配置了django-ckeditor

我的settings.py看起来像这样。..。

代码语言:javascript
复制
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(DATA_DIR, 'media')
STATIC_ROOT = "/static_prod/"

...

INSTALLED_APPS = (
...
'ckeditor',
'ckeditor_uploader',
'zinnia',
'zinnia_ckeditor'
)

...

# ZINNIA SETTINGS
ZINNIA_ENTRY_BASE_MODEL = 'myapp.models.Video'
ZINNIA_PAGINATION = 5

# CKEDITOR SETTINGS
CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_JQUERY_URL =  '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
CKEDITOR_CONFIGS = {
'default': {
    'toolbar': 'Full',
},
'zinnia-content': {
    'toolbar_Zinnia': [
        ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord'],
        ['Undo', 'Redo'],
        ['Scayt'],
        ['Link', 'Unlink', 'Anchor'],
        ['Image', 'Table', 'HorizontalRule', 'SpecialChar'],
        ['Source'],
        ['Maximize'],
        '/',
        ['Bold', 'Italic', 'Underline', 'Strike',
         'Subscript', 'Superscript', '-', 'RemoveFormat'],
        ['NumberedList', 'BulletedList', '-',
         'Outdent', 'Indent', '-', 'Blockquote'],
        ['Styles', 'Format'],
    ],
    'toolbar': 'Zinnia',
},
}

在我的urls.py中添加了这个。

代码语言:javascript
复制
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
  1. 我运行了collectstatic管理命令:python manage.py collectstatic

zinnia管理员一样,我的内容字段与这里相同。

EN

回答 2

Stack Overflow用户

发布于 2016-06-21 00:50:54

由于您的管理模型有预期的更改,您运行了python manage.py makemigrationspython manage.py migrate吗?

编辑:

在再次进行安装过程之后,我建议不要干扰工具栏配置的'zinnia-content'部分。我发现,即使我从示例配置中复制/粘贴了它,它也会在我的内容输入字段的顶部产生一个非常薄的条--但是没有工具栏(您的管理员似乎使用了一些自定义的--而且看起来非常漂亮-- CSS,所以这也许可以解释为什么瘦灰色条甚至没有在您的示例中被选中)。

我使用这个来获得完整的工具栏(这是我的添加条目页面):

代码语言:javascript
复制
CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': None,
    },
}

我的设置中也有这一点,当我点击图片的缩略图时,它会使"Browse Server“窗口显示很好的图像预览--尽管缩略图本身呈现为破损。但是,它并没有破坏该项目,而且我也不认为这会导致缩略图问题(我认为,当您在服务器上导航图像时,它实际上负责将预览的图像绘制成相同的大小):

代码语言:javascript
复制
CKEDITOR_IMAGE_BACKEND = "pillow"

取决于您的项目,一个特定于zinnia的工具栏可能是必要的,也可能不是必需的(在我的例子中,使用ckeditor的唯一位置无论如何是在输入字段中) --所以我没有使用一个以上的配置。但是,如果我将它传递给一个客户机,我肯定会放弃完整的工具栏),但是如果您需要工具栏的多个实例,也许通过页面模板本身上的本机js命令调用ckeditor (并在那里定义不同的工具栏设置)可能比在settings.py文件中定义不同的信任更好。

尽管如此!如果您已经幸运地在您的settings.py文件中运行了特定于Zinnia的配置,我很想知道您是如何实现它的!

而且,如果您仍然难以获得要呈现的工具栏,我发现settings.pyurls.py文件在django-ckeditor演示项目上是非常有用的引用!

**这可能是一个特定于项目的问题,但我在堆栈溢出时见过它几次:无论出于什么原因,完整的工具栏配置都没有默认加载SCAYT拼写检查器(尽管插件是与django-ckeditor安装一起自动安装的),但是在ckeditor的config.js文件中添加以下两行代码就成功了(您可能可以从名称中收集到的第二行是确保始终自动启用空间检查):

代码语言:javascript
复制
CKEDITOR.editorConfig = function( config ) {
    // Define changes to default configuration here. For example:
    // config.language = 'fr';
    // config.uiColor = '#AADC6E';
    config.extraPlugins = 'scayt';
    config.scayt_autoStartup = true;
};
票数 1
EN

Stack Overflow用户

发布于 2016-07-18 17:17:33

这就是我为使我的工作所做的。

首先,删除CKEditor default配置。它被第二个工具栏声明'toolbar': 'Zinnia',覆盖。

CKEDITOR_IMAGE_BACKEND = "pillow"对于编辑器本身的图像呈现非常重要。

应该在CKEditor config.js中显示的自定义配置( 这里 )可以用Python添加到底部。这回答了火花节关于直接配置Zinnia的问题。

代码语言:javascript
复制
CKEDITOR_CONFIGS = {

    'zinnia-content': {
        'toolbar_Zinnia': [
            ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord'],
            ...
        ],
    'uiColor': '#9AB8F3',
    'extraPlugins': 'scayt'
    },
}

下面是我的的结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37599233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档