MinValueValidator およびMaxValueValidator は整数用であるため、ここで使用するバリデーターは正しくありません。代わりに、範囲専用のバリデーターを使用してください:RangeMinValueValidator およびRangeMaxValueValidator 。
これらのバリデーターは両方ともモジュールdjango.contrib.postgres.validatorsにあります 。
ここにリンクがあります バリデーターのソースコードに。
また、IntegerRangeField Pythonではpsycopg2.extras.NumericRangeとして表されます オブジェクトなので、defaultを指定するときは、文字列の代わりにそれを使用してみてください モデルのパラメータ。
注:NumericRange デフォルトでは、オブジェクトには下限が含まれ、上限が含まれないため、NumericRange(0、100)には0が含まれ、100は含まれません。おそらくNumericRange(1、101)が必要です。 boundsを指定することもできます NumericRangeのパラメータ 数値を変更する代わりに、包含/除外のデフォルトを変更するオブジェクト。 NumericRangeオブジェクトのドキュメント
を参照してください。 。
例:
# models.py file
from django.contrib.postgres.validators import RangeMinValueValidator, RangeMaxValueValidator
from psycopg2.extras import NumericRange
class SomeModel(models.Model):
age_range = IntegerRangeField(
default=NumericRange(1, 101),
blank=True,
validators=[
RangeMinValueValidator(1),
RangeMaxValueValidator(100)
]
)