From c5aec8fd23015dbeb97d182e5f564eb01ed9e778 Mon Sep 17 00:00:00 2001 From: subnix Date: Thu, 21 Aug 2025 19:22:53 +0400 Subject: [PATCH] fix(validators): Disabled validation with provided formdata --- CHANGES.rst | 7 +++++++ src/wtforms/validators.py | 2 +- tests/validators/test_disabled.py | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index f34903fc9..f8e865e6b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,5 +1,12 @@ .. currentmodule:: wtforms +Unreleased +------------- + +Unreleased + +- Fix :class:`~validators.Disabled` validation with provided formdata. :pr:`880` + Version 3.2.1 ------------- diff --git a/src/wtforms/validators.py b/src/wtforms/validators.py index 3536963bf..aefed8093 100644 --- a/src/wtforms/validators.py +++ b/src/wtforms/validators.py @@ -711,7 +711,7 @@ def __init__(self): self.field_flags = {"disabled": True} def __call__(self, form, field): - if field.raw_data is not None: + if field.raw_data: raise ValidationError( field.gettext("This field is disabled and cannot have a value.") ) diff --git a/tests/validators/test_disabled.py b/tests/validators/test_disabled.py index aab7389f8..9b306a2c8 100644 --- a/tests/validators/test_disabled.py +++ b/tests/validators/test_disabled.py @@ -16,5 +16,8 @@ class F(Form): ) assert form.validate() + form = F(DummyPostData()) + assert form.validate() + form = F(DummyPostData(disabled=["foobar"])) assert not form.validate()