我们可以使用@action
装饰器来处理未选中的元素吗?
当我们使用
时@action
def action_custom(self, ids):
ids
=页面上选定的元素,但我们可以在这里获取未选中的元素吗?
答案 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