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