Настраиваемое действие Flask-Admin с невыбранным

python-3.x flask-admin

590 просмотра

1 ответ

3 Репутация автора

Можем ли мы использовать @actionдекоратор для работы с невыбранным элементом?

Когда мы используем

@action
def action_custom(self, ids):

ids = выбранный элемент на странице, но можем ли мы получить невыбранный элемент здесь?

Автор: dso Источник Размещён: 19.07.2016 08:00

Ответы (1)


1 плюс

3874 Репутация автора

Решение

Вы можете взломать action.js в Flask-Admin и изменить форму отправки, чтобы включить непроверенные строки в качестве скрытых значений, а затем вы можете получить эти значения в своем методе python @action с помощью метода getlist отправленной формы.

В строке 21 в action.js мы имеем:

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

form.submit();

Измените это так, чтобы непроверенные строки были включены в форму. Обратите внимание на использование :not(:checked)в селекторе jQuery, а значения сохраняются в скрытых входах с именем '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();

Теперь в вашем @actionметоде python (Python 2) вы можете сделать следующее:

@action
def action_custom(self, ids):
    _not_selected_ids = request.form.getlist('notrowid')
    print _not_selected_ids
Автор: pjcunningham Размещён: 28.07.2016 10:37
Вопросы из категории :
32x32