diff options
| author | Keryn Knight <keryn@kerynknight.com> | 2022-01-03 11:29:24 +0000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-01-04 05:51:00 +0100 |
| commit | 0ed2919814c80e31626dffdb6b80d0c20d43452f (patch) | |
| tree | bf8784b8289214e109ff54e31a17a1d42e38fe68 | |
| parent | b894199eb08d9162e70f7115f91e1e9d2030fc9f (diff) | |
Fixed #33406 -- Avoided creation of MaxLengthValidator(None) when resolving Value.output_field for strings.
This brings the behaviour in line with Field subclasses which append to
the validators within __init__(), like BinaryField, and prevents the
creation of a validator which incorrectly throws a TypeError, if it
were used.
| -rw-r--r-- | django/db/models/fields/__init__.py | 3 | ||||
| -rw-r--r-- | tests/expressions/tests.py | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index f30b523346..88c9ca9f28 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -1010,7 +1010,8 @@ class CharField(Field): def __init__(self, *args, db_collation=None, **kwargs): super().__init__(*args, **kwargs) self.db_collation = db_collation - self.validators.append(validators.MaxLengthValidator(self.max_length)) + if self.max_length is not None: + self.validators.append(validators.MaxLengthValidator(self.max_length)) def check(self, **kwargs): databases = kwargs.get('databases') or [] diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index b622c3a9aa..9fd31d550c 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -1859,6 +1859,7 @@ class ValueTests(TestCase): and this demonstrates that they don't throw an exception. """ value_types = [ + 'str', True, 42, 3.14, |
