在flask admin中,在保存新记录时添加确认提示

时间:2019-11-07 10:03:43

标签: flask flask-admin

我们的用户在各个Flask页面中具有常规的CRUD操作。

在一种情况下,“创建”操作可能是一个密集的过程,需要执行许多域逻辑,并且有时偶然创建了项目。

我们的用户现在要在单击“ 保存”按钮时添加一个简单的“ 确定要创建此帐户吗?”提示。下一个响应将是按钮。

如何添加它尚不明确-我们缺少明显的东西吗?

1 个答案:

答案 0 :(得分:0)

覆盖特定视图的Flask-Admin创建模板,然后向表单的onSubmit事件添加JavaScript确认。将确认添加到提交事件中可以处理三个提交按钮。 “保存”,“保存并添加另一个”和“保存并继续”。

例如:

class UserView(ModelView):
    create_template = 'create_user.html'
    # ...

在/ templates / admin文件夹中,添加html文件'create_user.html':

{% extends 'admin/model/create.html' %}

{% block tail %}
    {{ super() }}
    <script src="{{ admin_static.url(filename='admin/js/helpers.js', v='1.0.0') }}" type="text/javascript"></script>
    <script>
        (function ($) {
            $('form:first').on('submit', function() {
                return faHelpers.safeConfirm('{{ _gettext('Are you sure you want to save this record?') }}');
            });
        })(jQuery);
    </script>
{% endblock %}

请注意,这里有一个bug in Flask-Admin 1.5.3,该发行版中缺少helpers.js,您需要添加safeConfirm函数。

{% extends 'admin/model/create.html' %}

{% block tail %}
    {{ super() }}
    <script>
        (function ($) {

            function safeConfirm(msg) {
                try {
                    var isconfirmed = confirm(msg);
                    if (isconfirmed == true) {
                        return true;
                    }
                    else {
                        return false;
                    }
                }
                catch (err) {
                    return false;
                }
            }

            $('form:first').on('submit', function () {    
                return safeConfirm('{{ _gettext('Are you sure you want to save this record?') }}');
            });

        })(jQuery);

    </script>
{% endblock %}