动态填充javascript配置,flask管理员。

时间:2018-12-21 16:25:47

标签: javascript python flask-admin

想知道是否可以根据谁登录来动态更改javascript或html文件?它是烧瓶管理员服务器。 我想用用户登录名或电子邮件填充我的javascript ckeditor配置文件以使用它。

https://ckeditor.com/cke4/addon/lite

因此,我可以将ckeditor中更改的作者设置为登录的任何人。 我目前可以使用以下代码在管理页面模板中对其进行设置:

   CKEDITOR.on('instanceCreated', function (event) {
        var editor = event.editor,
            element = editor.element;
            editor.on('configLoaded', function () {
                var conf = CKEDITOR.config;
                var lt = conf.lite = conf.lite || {};
                lt.isTracking = true;
                lt.userName = "John";
                lt.userId = 2;
                lt.tooltipTemplate = "%a by- %u  ,Time:  %d-%m-%yy: (%t)";

            });
    });

我想将它的用户名更改为任何登录的人。

谢谢。

1 个答案:

答案 0 :(得分:0)

您必须将此数据从视图传递到脚本。

在视图类中覆盖编辑模板,如果在其中嵌入编辑器,则对创建模板执行相同的操作:

    class MyView(ModelView):
        edit_template = "my_edit.html"
        create_template = "my_create.html"

模板代码:

    {# extend base edit template #}
    {% extends 'admin/model/edit.html' %}
    {# to extend base create template - use 'admin/model/edit.html' above #}
    {% block tail_js %}
        {# print your data before scripts output, assign to window object #}
        {# presume you are using Flask-Login, it exposes current_user to the view #}
           window.APP_USER_NAME = "{{ current_user.name }}";
        {# print the rest of scripts #}
        {{ super() }}
    {% endblock %}

您现在可以从脚本访问名称:

   CKEDITOR.on('instanceCreated', function (event) {
        var editor = event.editor,
            element = editor.element;
            editor.on('configLoaded', function () {
                var conf = CKEDITOR.config;
                var lt = conf.lite = conf.lite || {};
                lt.isTracking = true;
                lt.userName = window.APP_USER_NAME;
                lt.userId = 2;
                lt.tooltipTemplate = "%a by- %u  ,Time:  %d-%m-%yy: (%t)";

            });
    });