Flask-Admin自定义操作未选中

时间:2016-07-19 08:00:13

标签: python-3.x flask-admin

我们可以使用@action装饰器来处理未选中的元素吗?

当我们使用

@action
def action_custom(self, ids):

ids =页面上选定的元素,但我们可以在这里获取未选中的元素吗?

1 个答案:

答案 0 :(得分:1)

您可以在Flask-Admin中修改action.js并更改提交表单以将未检查的行包含为隐藏值,然后您可以使用提交的表单的getlist方法在python @action方法中拾取这些值。

action.js的第21行,我们有:

$('input.action-checkbox', form).remove();
$('input.action-checkbox:checked').each(function() {
    form.append($(this).clone());
});

form.submit();

更改此选项,以便未选中的行包含在表单中。请注意在jQuery选择器中使用:not(:checked),并将值保存到名为'notrowid'的隐藏输入中:

$('input.action-checkbox', form).remove();

$('input.action-checkbox:not(:checked)').each(function(i, v) {
    form.append($('<input>').attr({'type':'hidden', 'name':'notrowid', 'value': v.value}));
});

$('input.action-checkbox:checked').each(function() {
    form.append($(this).clone());
});
form.submit();

现在,在python(Python 2)@action方法中,您可以执行以下操作:

@action
def action_custom(self, ids):
    _not_selected_ids = request.form.getlist('notrowid')
    print _not_selected_ids