diff --git a/tests/test_main.py b/tests/test_main.py index 9172337..1a7a420 100755 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -457,11 +457,13 @@ class StudentDefaultScoreScalar(Model): def test_column_default_callable(self): student_form = model_form(self.StudentDefaultScoreCallable, self.sess)() self.assertEqual(student_form._fields["score"].default, 5) + assert not contains_validator(student_form.score, InputRequired) def test_column_default_scalar(self): student_form = model_form(self.StudentDefaultScoreScalar, self.sess)() assert not isinstance(student_form._fields["score"].default, ColumnDefault) self.assertEqual(student_form._fields["score"].default, 10) + assert not contains_validator(student_form.score, InputRequired) class ModelFormTest2(TestCase): diff --git a/wtforms_sqlalchemy/orm.py b/wtforms_sqlalchemy/orm.py index e5c3a51..d1933d8 100644 --- a/wtforms_sqlalchemy/orm.py +++ b/wtforms_sqlalchemy/orm.py @@ -120,7 +120,7 @@ def convert(self, model, mapper, prop, field_args, db_session=None): kwargs["default"] = default - if column.nullable: + if column.nullable or default is not None: kwargs["validators"].append(validators.Optional()) else: kwargs["validators"].append(validators.InputRequired())