Получил несколько значений для ключевого слова аргумент "метка" - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь установить пользовательскую метку для отправки, не знаю, почему я получаю эту ошибку:

TypeError: __init__() got multiple values for keyword argument 'label'

class Reply(Form):
    body = TextAreaField([Length(50, 1000)])
    submit = SubmitField()

    def __init__(self, user, *args, **kwargs):
        self.body.kwargs['label'] = lazy_gettext(u'Public comment of %(value)s', value=user)
        Form.__init__(self, *args, **kwargs)

Если я перейду на приведенный ниже код, то все будет нормально:

body = TextAreaField()

Кажется, что есть какой-то конфликт с [Length(50, 1000)] и пользовательским label.

1 Ответ

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

Правильный способ динамического заполнения значений в вашей форме - это маршрут, а не метод init формы.

def reply():
    form = Reply(request.form)

    if form.validate_on_submit():
        # Use form contents
        return redirect(url_for('reply'))

    user = get_user()
    form.body.label.text = f'Public comment of {user}'

    return render_template('reply.html', form=form)
...