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)
]
)