2

首先请原谅我的英语真的很糟糕,但我会尽力解释。

我在博客中工作,django-blog-zinnia到目前为止一切顺利。现在我尝试CKEditor

Django zinnia-wysiwyg-ckeditor

我按照其每个文档中的步骤进行操作,但无法使其正常工作。

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

所以,我做的是这个

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

我的settings.py样子是这样的。...

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添加了这个。

url(r'^ckeditor/', include('ckeditor_uploader.urls')),
  1. 我运行了collectstatic管理命令:python manage.py collectstatic

和管理员我zinnia内容领域保持不变。

4

2 回答 2

1

由于您的管理模型有预期的变化,您是否运行python manage.py makemigrationspython manage.py migrate

编辑:

再次完成安装过程后,我建议不要弄乱'zinnia-content'工具栏配置的部分。我发现,即使我从示例配置中复制/粘贴它,它也会在我的内容输入字段顶部产生一个非常细的条 - 但没有工具栏(您的管理员似乎正在使用一些自定义 - 非常好寻找- CSS,所以也许这可以解释为什么细灰色条甚至没有被您的示例选中)。

我正在使用它来获取完整的工具栏(这是我的添加条目页面):

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': None,
    },
}

我的设置中也有这个,当我单击图像的缩略图时,它使“浏览服务器”窗口显示漂亮的图像预览——尽管缩略图本身呈现为损坏。但是,它并没有破坏项目,我认为这甚至不会导致缩略图问题(我相信当您在服务器上导航图像时,它实际上负责将预览图像渲染为相同大小):

CKEDITOR_IMAGE_BACKEND = "pillow"

根据您的项目,可能需要也可能不需要特定于百日草的工具栏(在我的情况下,使用 ckeditor 的唯一位置是在输入字段中,无论如何 - 所以我没有使用多个配置。但是,如果我将其传递给客户端,我当然会放弃完整的工具栏),但是如果您需要工具栏的多个实例,则可以通过页面模板本身上的本机 js 命令调用 ckeditor(并定义不同的工具栏那里的设置)可能比在settings.py文件中定义不同的配置更好。

虽然!如果您在settings.py提出这个问题后幸运地让 Zinnia 特定的配置在您的文件中工作,我很想知道您是如何做到的!

而且,如果您仍然无法渲染工具栏,我发现django-ckeditor 演示项目settings.py中的和urls.py文件是非常有用的参考!

**这可能是一个特定于项目的问题,但我已经在 stackoverflow 上看到过几次提到它:无论出于何种原因,完整的工具栏配置都没有默认加载 SCAYT 拼写检查器(尽管插件是自动安装的django-ckeditor 安装),但是将以下两行添加到 ckeditor 的config.js文件中就可以了(第二行,正如您可能从名称中得知的那样,是为了确保始终自动启用拼写检查):

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;
};
于 2016-06-21T00:50:54.363 回答
0

这就是我为使 Zinnia-CKEditor 正常工作所做的工作。

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

CKEDITOR_IMAGE_BACKEND = "pillow"对于编辑器本身中的图像渲染很重要。

应该在此处config.js显示的 CKEditor 中的自定义配置可以用 Python 表示法添加到底部。这回答了 sparkholiday关于直接配置 Zinnia 的问题。

CKEDITOR_CONFIGS = {

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

这是我的百日草工具栏的结果:

百日草自定义工具栏

于 2016-07-18T17:17:33.377 回答