Search code examples
pythonwtforms

WTForms: Passing extra arguments while writting custom validation


While writing custom validation for wtforms, is it possible to pass extra argument( like request)

For e.g

class MyForm(Form):
  name = TextField('Name', [Required()])

  def validate_name(form, field):
    if len(field.data) > 50:
        raise ValidationError('Name must be less than 50 characters')

I need to pass request object( or non form object), if possible to validate_name method. Is there any way for doing it?


Solution

  • The easier way to proceed would be to pass the request object to your form and store it as an attribute.

    You could do this through the __init__ method , or by doing my_form.request = request.

    Then, you validate_name method can access the request at self.request.