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