mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #30328 -- Fixed crash of IntegerField.validators when limit_value in a custom validator is callable.
This commit is contained in:
committed by
Mariusz Felisiak
parent
aed89adad5
commit
a14c0fda15
@@ -1792,13 +1792,25 @@ class IntegerField(Field):
|
||||
validators_ = super().validators
|
||||
internal_type = self.get_internal_type()
|
||||
min_value, max_value = connection.ops.integer_field_range(internal_type)
|
||||
if (min_value is not None and not
|
||||
any(isinstance(validator, validators.MinValueValidator) and
|
||||
validator.limit_value >= min_value for validator in validators_)):
|
||||
if min_value is not None and not any(
|
||||
(
|
||||
isinstance(validator, validators.MinValueValidator) and (
|
||||
validator.limit_value()
|
||||
if callable(validator.limit_value)
|
||||
else validator.limit_value
|
||||
) >= min_value
|
||||
) for validator in validators_
|
||||
):
|
||||
validators_.append(validators.MinValueValidator(min_value))
|
||||
if (max_value is not None and not
|
||||
any(isinstance(validator, validators.MaxValueValidator) and
|
||||
validator.limit_value <= max_value for validator in validators_)):
|
||||
if max_value is not None and not any(
|
||||
(
|
||||
isinstance(validator, validators.MaxValueValidator) and (
|
||||
validator.limit_value()
|
||||
if callable(validator.limit_value)
|
||||
else validator.limit_value
|
||||
) <= max_value
|
||||
) for validator in validators_
|
||||
):
|
||||
validators_.append(validators.MaxValueValidator(max_value))
|
||||
return validators_
|
||||
|
||||
|
||||
Reference in New Issue
Block a user