PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Django IntegerRangeField सत्यापन विफल

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, PostgreSQL और SQLite में डेटाबेस कॉलम प्रकारों की तुलना? (क्रॉस-मैपिंग)

  2. इसके कारण:org.postgresql.util.PSQLException:FATAL:उपयोगकर्ता व्यवस्थापक के लिए पासवर्ड प्रमाणीकरण विफल

  3. पोस्टग्रेज से केवल विशिष्ट कुंजियों का jsonb कैसे प्राप्त करें?

  4. मुझे pgAdmin 3 का उपयोग करके CSV से पोस्टग्रेज़ तालिका में डेटा कैसे आयात करना चाहिए?

  5. SQLAlchemy with_for_update पंक्ति लॉकिंग काम नहीं कर रही है?