首先,借口我的英语非常糟糕,但我会尽力解释。
我在博客中工作django-blog-zinnia
,到目前为止一直很好。现在我尝试将CKEditor
与
Django zinnia-wysiwyg-ckeditor
我按照每个文档中的步骤操作,但我无法使其正常工作。
我搜索并检查控制台中的错误,没有什么,可能会忽略一些东西,因为这也是我第一次使用Django。
所以,我做的就是这个
zinnia-wysiwyg-ckeditor
和django-ckeditor
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')),
collectstatic
管理命令:python manage.py collectstatic
和zinnia
管理员我的内容字段与here保持一致。
答案 0 :(得分:1)
由于您的管理模型有预期的变化,您是否运行了python manage.py makemigrations
和python manage.py migrate
?
编辑:
再次完成安装过程后,我建议不要弄乱工具栏配置的'zinnia-content'
部分。我发现,即使我从示例配置中复制/粘贴它,它在我的内容输入字段的顶部产生了一个非常薄的栏 - 但没有工具栏(你的管理员似乎使用了一些自定义 - 并且非常好寻找 - CSS,所以也许这可以解释为什么薄灰条甚至没有被你的例子拿起来。)
我正在使用它来获取完整的工具栏(这是我的Add Entry页面):
CKEDITOR_CONFIGS = {
'default': {
'toolbar': None,
},
}
我的设置中也有这个,这使得“浏览服务器”窗口在我点击图像的缩略图时显示出漂亮的图像预览 - 尽管缩略图本身呈现为已损坏。但是,它并没有打破这个项目,我认为这甚至不会导致缩略图问题(我相信它实际上负责将预览的图像以相同的大小重新排列,当您在服务器上导航图像时): / p>
CKEDITOR_IMAGE_BACKEND = "pillow"
根据您的项目,可能需要或不需要特定于zinnia的工具栏(在我的情况下,使用ckeditor的唯一地方是在输入字段中,无论如何 - 所以我没有使用超过一个配置。如果我把它传递给客户端,我肯定会抛弃整个工具栏),但是如果你需要工具栏的多个实例,可以通过页面模板本身的原生js命令调用ckeditor(并定义那里的不同工具栏设置可能比定义settings.py
文件中的不同配置更好。
虽然!如果你有幸在你的settings.py
文件中使用Zinnia特定的配置,那么我会很高兴知道你是怎么做到的!
而且,如果您仍然无法使用工具栏进行渲染,我发现django-ckeditor demo project上的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;
};
答案 1 :(得分:0)
这就是我为使Zinnia-CKEditor工作所做的工作。
首先,删除CKEditor default
配置。它被第二个工具栏声明'toolbar': 'Zinnia',
覆盖。
CKEDITOR_IMAGE_BACKEND = "pillow"
对于编辑器本身的图像渲染非常重要。
应该在CKEditor config.js
中显示here的自定义配置可以用Python表示法添加到底部。这回答了关于直接配置百日草的sparkholiday's问题。
CKEDITOR_CONFIGS = {
'zinnia-content': {
'toolbar_Zinnia': [
['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord'],
...
],
'uiColor': '#9AB8F3',
'extraPlugins': 'scayt'
},
}
以下是我的百日草工具栏的结果: