MinValueValidator dan MaxValueValidator adalah untuk bilangan bulat, jadi mereka adalah validator yang salah untuk digunakan di sini. Alih-alih gunakan validator khusus untuk rentang:RangeMinValueValidator dan RangeMaxValueValidator .
Kedua validator tersebut hidup dalam modul django.contrib.postgres.validators .
Berikut ini tautannya ke kode sumber validator.
Juga, sebuah IntegerRangeField direpresentasikan dalam Python sebagai psycopg2.extras.NumericRange objek, jadi coba gunakan itu alih-alih string saat Anda menentukan default parameter dalam model.
Catatan:NumericRange objek secara default termasuk batas bawah dan tidak termasuk batas atas, jadi NumericRange(0, 100) akan menyertakan 0 dan tidak menyertakan 100. Anda mungkin menginginkan NumericRange(1, 101). Anda juga dapat menentukan bounds parameter di NumericRange . Anda objek untuk mengubah default untuk penyertaan/pengecualian, sebagai pengganti mengubah nilai angka. Lihat dokumentasi objek NumericRange
.
Contoh:
# 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)
]
)