Как отправить форму, но указать другое назначение для данных, python / flask - PullRequest
0 голосов
/ 02 мая 2019

У меня есть форма вокруг таблицы, и в таблице в одном из столбцов есть флажок для каждой строки.

Item    Amount    Select
-------------------------
apple   10        [x]
banana  5         [ ]
orange  23        [ ]

У меня две кнопки, одна удаляет строку, другая делает что-то еще в бэкэнде с той же информацией.

<form action="{{ url_for('do_action') }}" method="post">
    <table>
    ...content
        <input name="check" type="checkbox">
    </table
<button type='submit'>Delete Row</button>
<button type='submit'>Update</button>
</form>

Есть ли способ прикрепить какой-либо контекст к форме в зависимости от кнопки, которую я нажимаю?

Я хочу, чтобы мой маршрут в бэкэнде знал, что делать

@app.route('/do_action', methods=['POST'])
def do_action():
    if button.clicked == 'delete':
        # do delete action
    elif button.clicked == 'update':
        # do update action

    return 'Complete'

1 Ответ

1 голос
/ 02 мая 2019

Вы можете использовать <input> элементы с одинаковыми name, но с разными атрибутами value.

 <input type ="submit" name="submit" value="update">
 <input type ="submit" name="submit" value="delete">

В серверной части импортируйте объект запроса и разверните его условия:

from flask import request

if request.form.post['submit'] == 'update':
    ...
elif request.form.post['submit'] == 'delete':
    ...
else
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...