WTForms / Flask: динамические min_entries - PullRequest
0 голосов
/ 01 марта 2019

Я хочу использовать параметр min_entries WTForms динамически, то есть без жесткого кодирования чисел.

Это выглядело бы примерно так в формене работает и просто отображает НЕТ ПОЛЕЙ для TestInputForm.Если я добавлю "min_entries = 10" в переменную студентов в TestInputForm, все будет работать как положено.Но я не могу сделать это динамически.

Может ли кто-нибудь помочь мне, пожалуйста?Согласно всем моим поискам в google / reddit / SO, это в основном способ, которым большинство параметров или валидаторов в WTForms устанавливаются динамически.

Спасибо

1 Ответ

0 голосов
/ 02 марта 2019

Невозможно динамически переопределить min_entries для FieldList.

Временное решение: создать подкласс для формы и связать новый FieldList с требуемым значением.

Таким образом, ваш код должен выглядеть примерно так:

def input(key_id):
    key = Testspecs.query.get_or_404(key_id) 
    student_number = key.student_number
    # Subclass form and bind new field
    class LocalForm(TestInputForm):pass
    LocalForm.students = FieldList(FormField(StudentForm), min_entries=student_number)
    # Use our new form
    form = LocalForm()
    if form.validate_on_submit():
        ...
...