Загрузить данные во вложенный FieldList / FormField в формах flask (WTForm) - PullRequest
0 голосов
/ 18 июня 2020

У меня проблема с запуском / заполнением формы вложенными данными.

Форма выглядит следующим образом:

field_1 --> FieldList(FormField)
    field_1_1 --> StringField
    field_1_2 --> StringField
    field_1_3 --> FieldList(StringField)

Я хочу создать экземпляр формы, используя my_form = my_form_class(**data).

Вот как выглядит data:

data = {
    "field_1 ": [
        "field_1_1": "abc",
        "field_1_2": "abc",
        "field_1_3": ["abc", "abc", "abc"]
    ]
}

Но после создания my_form.data пуст, а my_form.validate() не проходит.

У меня есть другие похожие формы, которые только на один уровень меньше вложены (нет FieldList внутри FormField), и он работает нормально, может ли это быть проблемой?

У этого человека такая же проблема (нет решения). При поиске я вижу людей, говорящих о нескольких токенах CSRF? Как это работает?

Есть идеи?

1 Ответ

0 голосов
/ 22 июня 2020

Решением было использовать:

my_form = my_form_class()
my_form.process(data=form_data_json)

вместо:

my_form = my_form_class(**data)

Проверить эту часть документации о методе .process():

Поскольку BaseForm не принимает свои данные при создании экземпляра, вы должны вызвать это, чтобы предоставить данные формы во вложенные поля.

...