首先,请原谅我的英语真的很差,但我会尽我所能解释。
到目前为止,我正在和django-blog-zinnia一起写博客。现在我尝试将CKEditor与
Django zinnia-wysiwyg-ckeditor
我按照它的每个文档中的步骤操作,我无法使它工作。
我搜索并检查控制台中的错误,没有什么,可能会忽略一些东西,因为这也是我第一次使用Django。
所以,我是这么做的
zinnia-wysiwyg-ckeditor和django-ckeditorsettings.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')),collectstatic管理命令:python manage.py collectstatic和zinnia管理员一样,我的内容字段与这里相同。
发布于 2016-06-21 00:50:54
由于您的管理模型有预期的更改,您运行了python manage.py makemigrations和python manage.py migrate吗?
编辑:
在再次进行安装过程之后,我建议不要干扰工具栏配置的'zinnia-content'部分。我发现,即使我从示例配置中复制/粘贴了它,它也会在我的内容输入字段的顶部产生一个非常薄的条--但是没有工具栏(您的管理员似乎使用了一些自定义的--而且看起来非常漂亮-- CSS,所以这也许可以解释为什么瘦灰色条甚至没有在您的示例中被选中)。
我使用这个来获得完整的工具栏(这是我的添加条目页面):
CKEDITOR_CONFIGS = {
'default': {
'toolbar': None,
},
}我的设置中也有这一点,当我点击图片的缩略图时,它会使"Browse Server“窗口显示很好的图像预览--尽管缩略图本身呈现为破损。但是,它并没有破坏该项目,而且我也不认为这会导致缩略图问题(我认为,当您在服务器上导航图像时,它实际上负责将预览的图像绘制成相同的大小):
CKEDITOR_IMAGE_BACKEND = "pillow"取决于您的项目,一个特定于zinnia的工具栏可能是必要的,也可能不是必需的(在我的例子中,使用ckeditor的唯一位置无论如何是在输入字段中) --所以我没有使用一个以上的配置。但是,如果我将它传递给一个客户机,我肯定会放弃完整的工具栏),但是如果您需要工具栏的多个实例,也许通过页面模板本身上的本机js命令调用ckeditor (并在那里定义不同的工具栏设置)可能比在settings.py文件中定义不同的信任更好。
尽管如此!如果您已经幸运地在您的settings.py文件中运行了特定于Zinnia的配置,我很想知道您是如何实现它的!
而且,如果您仍然难以获得要呈现的工具栏,我发现settings.py和urls.py文件在django-ckeditor演示项目上是非常有用的引用!
**这可能是一个特定于项目的问题,但我在堆栈溢出时见过它几次:无论出于什么原因,完整的工具栏配置都没有默认加载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-07-18 17:17:33
这就是我为使我的工作所做的。
首先,删除CKEditor default配置。它被第二个工具栏声明'toolbar': 'Zinnia',覆盖。
CKEDITOR_IMAGE_BACKEND = "pillow"对于编辑器本身的图像呈现非常重要。
应该在CKEditor config.js中显示的自定义配置( 这里 )可以用Python添加到底部。这回答了火花节关于直接配置Zinnia的问题。
CKEDITOR_CONFIGS = {
'zinnia-content': {
'toolbar_Zinnia': [
['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord'],
...
],
'uiColor': '#9AB8F3',
'extraPlugins': 'scayt'
},
}下面是我的的结果:

https://stackoverflow.com/questions/37599233
复制相似问题