MinValueValidator og MaxValueValidator er for heltal, så de er de forkerte validatorer, der skal bruges her. Brug i stedet validatorerne specifikt til intervaller:RangeMinValueValidator og RangeMaxValueValidator .
Begge disse validatorer findes i modulet django.contrib.postgres.validators .
Her er et link til validatorkildekoden.
Også et IntegerRangeField er repræsenteret i Python som en psycopg2.extras.NumericRange objekt, så prøv at bruge det i stedet for en streng, når du angiver din default parameter i modellen.
Bemærk:NumericRange objekt er som standard inklusive den nedre grænse og eksklusive den øvre grænse, så NumericRange(0, 100) vil inkludere 0 og ikke inkludere 100. Du vil sandsynligvis have NumericRange(1, 101). Du kan også angive en bounds parameter i din NumericRange objekt for at ændre standardindstillingerne for inklusion/ekskludering i stedet for at ændre talværdierne. Se dokumentationen til NumericRange-objektet
.
Eksempel:
# 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)
]
)