TL; DR :谁能告诉我如何为flask中的flask-ckeditor字段添加自定义配置(默认情况下启用SCAYT拼写检查器) -admin
首先,我已经在我的Flask-WTF和Flask-Admin表单中使用flask-ckeditor了很长一段时间(大声地向greyli喊以创建它,因为我可以将我需要做的大多数事情都用Python废话,但是我无法用Javascript在啤酒厂中撒尿...或类似的东西)-它很棒,可以满足我的大部分需求...但是因为我输入了很多文本(使用自定义flask-WTF表单) ),并且经常需要对其进行编辑(我使用flask-admin进行了修改),我希望能够将两者的默认设置都设为拼写检查器。
我无法执行(或不知道如何执行)设置了flask-admin页面所需的自定义ckeditor配置(scayt_autoStartup:true)。
可用的配置有限,我可以在config中使用它来设置字段的高度,例如在我的配置文件中:
CKEDITOR_FILE_UPLOADER = 'filething'
CKEDITOR_PKG_TYPE = 'full'
CKEDITOR_HEIGHT = 500
并且这些选项在全局范围内起作用(即:也以flask-admin形式),但是我看不到(我也可以快速浏览源代码)在此处添加自定义配置。
我在模板中使用它来为使用CKEditor的普通站点页面设置它:
{{ ckeditor.config(name='text_stuff', custom_config="scayt_autoStartup: true") }}
,对于普通页面来说效果很好,但是对flask-admin页面没有任何控制。
有没有简单的方法可以做到这一点?我想我一直在盯着这个问题太久了,觉得自己缺少明显的东西。
干杯,史蒂夫
编辑:
在我所做的阅读中,我发现:https://github.com/flask-admin/flask-admin/issues/1328向我指出了“解决方案”的总体方向。
感觉很脏,但是通过在flask-admin中使用extra_js
可以解决问题。我将此以下文件添加到/templates/admin/master.html
{% extends 'admin/base.html' %}
{% block tail_js %}
{{ super() }}
{% if admin_view.extra_js %}
{% for js in admin_view.extra_js %}
{{js|safe}} {# 'safe' LOL #}
{% endfor %}
{% endif %}
{% endblock %}
,然后将其添加到由于其他原因而在我的 init 文件中已经存在的现有替代项中:
class MyModelView(ModelView):
extra_js = ['<script src="//cdn.ckeditor.com/4.9.2/full/ckeditor.js">','CKEDITOR.config.scayt_autoStartup = true</script>']
这看起来很可怕,但是有效。我必须强制ckeditor加载到此处(作为实际实现的一部分,稍后在您查看页面源代码时再加载几行),否则extra_js插入得太早了,因此配置更改中断了,因为尚未加载编辑器。
所以,一个解决方案:是的……正确的做法:不(可能)……未知的未知数?大概几个。
我仍然会喜欢一种更好的方法,但是如果什么都没有发生,那么我将其称为“固定的”(嗯,固定的程度足以满足我的需求,而且我还没有看过任何专业缺点还),然后继续:)