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