sql >> Database teknologi >  >> RDS >> PostgreSQL

Django IntegerRangeField Validering mislykkedes

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



  1. Arrays fra multiple upload-formularer, upload billeder og indsæt derefter til databasen (PHP, MySQL)

  2. Oracle GROUP_CONCAT() ækvivalent

  3. hente tabeldata med enkelt forespørgsel

  4. SQLite forbedret forespørgselssyntaks på Android