[python] Flask-WTF에서 폼을 동적으로 생성할 때 필드에 따라 유효성 검사를 적용하는 방법은 어떻게 되나요?
  1. 필드에 따라 유효성 검사를 적용하려는 폼 클래스를 생성합니다.
  2. FieldList와 같은 동적 필드를 사용하여 폼 내에서 필드를 동적으로 추가할 수 있도록 합니다.
  3. 필드의 유효성 검사 규칙을 적용할 때, 폼 클래스의 validator 메서드를 사용합니다.

아래는 예제 코드입니다.

from flask_wtf import FlaskForm
from wtforms import StringField, FieldList, FormField, SubmitField, validators

class DynamicForm(FlaskForm):
    fields = FieldList(StringField("Field", validators=[validators.InputRequired()]), min_entries=1)
    submit = SubmitField("Submit")

    def validate(self):
        # 폼 생성 시 유효성 검사 규칙을 적용합니다.
        if not super(DynamicForm, self).validate():
            return False

        # 각 필드에 대한 동적 유효성 검사를 적용합니다.
        for field in self.fields:
            if not field.data:
                field.errors.append("Field is required.")
                return False

        return True

위의 예제에서 DynamicForm 클래스는 FieldList를 사용하여 동적 필드를 생성합니다. 필드의 유효성 검사는 필드 생성 시에 적용되며, validate 메서드를 통해 각 필드에 대한 동적 유효성 검사를 수행합니다. 만약 필드가 비어있는 경우, 에러를 추가하여 유효성 검사가 실패하도록 합니다.

이렇게 하면 Flask-WTF에서 폼을 동적으로 생성하면서 필드에 따라 유효성 검사를 적용할 수 있습니다.