There are three different ways to do this (all of them acceptable):
Use two different forms:
class PostMessageForm(Form): message = TextAreaField(validators=[DataRequired()]) class CreateTopicForm(PostMessageForm): topic = TextField(validators=[DataRequired()])
Delete the field:
# In the controller that handles topic messages form = PostingForm() del form.topic if form.validate_on_submit(): # etc.
Alter the validators:
# In the controller that handles topic messages form = PostingForm() # Either mark the field as optional form.topic.validators.insert(0, Optional()) # or remove the validator entirely form.topic.validators = []