MinValueValidator
और MaxValueValidator
पूर्णांकों के लिए हैं, इसलिए वे यहां उपयोग करने के लिए गलत सत्यापनकर्ता हैं। इसके बजाय विशेष रूप से श्रेणियों के लिए सत्यापनकर्ताओं का उपयोग करें:RangeMinValueValidator
और RangeMaxValueValidator
।
वे दोनों सत्यापनकर्ता मॉड्यूल में रहते हैं django.contrib.postgres.validators
।
यहां एक लिंक है सत्यापनकर्ता स्रोत कोड के लिए।
साथ ही, एक IntegerRangeField
पायथन में psycopg2.extras.NumericRange
. के रूप में दर्शाया गया है ऑब्जेक्ट, इसलिए जब आप अपना default
. निर्दिष्ट करते हैं तो स्ट्रिंग के बजाय इसका उपयोग करने का प्रयास करें मॉडल में पैरामीटर।
नोट:NumericRange
ऑब्जेक्ट डिफ़ॉल्ट रूप से निचली बाउंड और ऊपरी बाउंड के अनन्य शामिल है, इसलिए न्यूमेरिकरेंज (0, 100) में 0 शामिल होगा और 100 शामिल नहीं होगा। आप शायद न्यूमेरिकरेंज (1, 101) चाहते हैं। आप एक bounds
भी निर्दिष्ट कर सकते हैं आपके NumericRange
. में पैरामीटर संख्या मानों को बदलने के बदले, समावेश/बहिष्करण के लिए चूक को बदलने का विरोध। देखें न्यूमेरिकरेंज ऑब्जेक्ट डॉक्यूमेंटेशन
.
उदाहरण:
# 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)
]
)