MinValueValidator och MaxValueValidator är för heltal, så de är felaktiga validerare att använda här. Använd istället validatorerna specifikt för intervall:RangeMinValueValidator och RangeMaxValueValidator .
Båda dessa validerare finns i modulen django.contrib.postgres.validators .
Här är en länk till validerarens källkod.
Dessutom ett IntegerRangeField representeras i Python som en psycopg2.extras.NumericRange objekt, så försök använda det istället för en sträng när du anger din default parameter i modellen.
Obs:NumericRange objekt är som standard inklusive den nedre gränsen och exklusive den övre gränsen, så NumericRange(0, 100) skulle inkludera 0 och inte inkludera 100. Du vill förmodligen ha NumericRange(1, 101). Du kan också ange en bounds parametern i din NumericRange objekt för att ändra standardinställningarna för inkludering/exkludering, istället för att ändra siffervärdena. Se dokumentationen för NumericRange-objektet
.
Exempel:
# 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)
]
)