首页 > 解决方案 > Flask-Admin:将 WYSIWYG 编辑器添加到内联模型?

问题描述

几乎就像主题一样:我有一个 Flask-Admin 站点,并且想将 TinyMCE 或 CKEditor 添加到内联模型中的文本区域。

通常有各种将 CKEditor 添加到 Flask-Admin 的说明,例如Flask-Admin 和 CKEditor WYSIWYG textarea 集成以及让 CKEditor 与 Flask-Admin 一起工作。我已经按照这些创建了 WTForms 小部件和字段。内联模型不使用 edit.html 来拉入 JS,但我可以将它添加到主模板中,尽管这并不理想。

但主要问题是如何将 WTForms 字段附加到 Flask-Admin 模型。现有说明让您设置了form_overrides = dict(fieldname=CKTextAreaField). 但这在内部不起作用inline_models。我该如何做到这一点?

标签: flaskckeditorflask-wtformsflask-admin

解决方案


几天前我遇到了这个问题,并设法通过将它添加到我的视图类来解决它。

class CustomView(ModelView):

    extra_js = ['//cdn.ckeditor.com/4.6.0/standard/ckeditor.js']
    inline_models=[ ( YourModel, dict(
        form_overrides={
            'FieldName':CKTextAreaField
        }
    ))]

假设您遵循了 CKEditor 的烧瓶管理员文档教程

inline_models 由 (model, options) 对组成。"options" 对象是这里的关键:它接受 ModelView 拥有的大部分 form_* 属性。


推荐阅读