Как сделать динамическую форму для пользователя в колбе - PullRequest
0 голосов
/ 04 июля 2019

У меня есть кнопка редактирования для каждого пользователя в таблице, и я хочу использовать только одну форму редактирования для всех них. Моя кнопка редактирования:

{{ button_show_dialog('open_edit_sprint_user', 'Edit','btn-primary') }}

{% call dialog_window('open_edit_sprint_user', 'Edit') %} {{ wtf.quick_form(edit_sprint_user_form, button_map={'add_user-submit': 'success'}) }} {% endcall %}

sprint_handler.py

def sprint_info(team_code, sprint_number):
    edit_sprint_user_form = forms.EditSprintUserForm(prefix='edit_sprint_user')
    if edit_sprint_user_form.validate_on_submit():
        ******do something******
    return render_template('baseop/sprint_info.html', sprint=sprint,
            edit_sprint_user_form=edit_sprint_user_form)

forms.py

class EditSprintUserForm(FlaskForm):
    value = FloatField('Mark', validators=[DataRequired()])
    description = TextAreaField('Description', validators=[DataRequired()])
    submit = SubmitField('Edit')

У меня есть функция, которая возвращает всех пользователей в моем спринте get_users_in_sprint()

Итак, я хочу нажать эту кнопку и редактировать разных пользователей, используя только одну форму с именем EditSprintUserForm, но теперь я могу редактировать только одного выбранного человека

1 Ответ

0 голосов
/ 05 июля 2019

Я не уверен, правильно ли я понимаю, я думаю, ключ будет в том, чтобы получить текущее отредактированное имя пользователя или идентификатор пользователя, когда вы нажмете кнопку редактирования.

Простое решение - использовать JavaScript, вы будетенеобходимо создать скрытое поле для вашей формы, чтобы получить имя пользователя или идентификатор:

from wtforms import HiddenField

class EditSprintUserForm(FlaskForm):
    user = HiddenField('User')  # <--
    value = FloatField('Mark', validators=[DataRequired()])
    description = TextAreaField('Description', validators=[DataRequired()])
    submit = SubmitField('Edit')

Затем создайте прослушиватель событий с JavaScript, чтобы заполнить этот скрытый ввод именем пользователя или идентификатором при нажатии кнопки редактирования.Вы можете сохранить имя пользователя или идентификатор пользователя в кнопке редактирования.

Теперь в функции просмотра вы можете получить имя пользователя или идентификатор с помощью edit_sprint_user_form.user.data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...