Django 2.1

Validators




django

Validators

मान्यवर लिख रहे हैं

एक सत्यापनकर्ता एक कॉल करने योग्य है जो एक मान लेता है और अगर यह कुछ मानदंडों को पूरा नहीं करता है, तो ValidationError उठाता है। सत्यापनकर्ता विभिन्न प्रकार के क्षेत्रों के बीच सत्यापन तर्क का उपयोग करने के लिए उपयोगी हो सकते हैं।

उदाहरण के लिए, यहां एक सत्यापनकर्ता है जो केवल संख्याओं की अनुमति देता है:

from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _

def validate_even(value):
    if value % 2 != 0:
        raise ValidationError(
            _('%(value)s is not an even number'),
            params={'value': value},
        )

आप इसे क्षेत्र के validators तर्क के माध्यम से एक मॉडल फ़ील्ड में जोड़ सकते हैं:

from django.db import models

class MyModel(models.Model):
    even_field = models.IntegerField(validators=[validate_even])

मान्यताओं के चलने से पहले मानों को पायथन में बदल दिया जाता है, आप प्रपत्रों के साथ भी उसी सत्यापनकर्ता का उपयोग कर सकते हैं:

from django import forms

class MyForm(forms.Form):
    even_field = forms.IntegerField(validators=[validate_even])

आप अधिक जटिल या कॉन्फ़िगर करने योग्य सत्यापनकर्ताओं के लिए __call__() पद्धति के साथ एक वर्ग का भी उपयोग कर सकते हैं। उदाहरण के लिए, RegexValidator इस तकनीक का उपयोग करता है। यदि क्लास-आधारित सत्यापनकर्ता का उपयोग validators मॉडल फ़ील्ड विकल्प में किया जाता है, तो आपको यह सुनिश्चित करना चाहिए कि __eq__() deconstruct() और __eq__() विधियों को जोड़कर माइग्रेशन फ्रेमवर्क द्वारा यह धारावाहिक हो

वैध कैसे चलाए जाते हैं

प्रपत्रों में सत्यापनकर्ता कैसे चलाए जाते हैं, इस बारे में अधिक जानकारी के लिए फ़ॉर्म सत्यापन देखें और वे मॉडल में कैसे चलाए जा रहे हैं, इसके लिए ऑब्जेक्ट्स सत्यापित करें । ध्यान दें कि जब आप किसी मॉडल को सहेजते हैं, तो सत्यापनकर्ता स्वचालित रूप से नहीं चलेंगे, लेकिन यदि आप एक ModelForm का उपयोग कर रहे हैं, तो यह आपके सत्यापनकर्ताओं को आपके फॉर्म में शामिल किए गए किसी भी फ़ील्ड पर चलाएगा। मॉडल सत्यापन फॉर्म के साथ कैसे इंटरैक्ट करता है, इसकी जानकारी के लिए मॉडलफार्म प्रलेखन देखें।

अंतर्निहित वैधीकरण

django.core.validators मॉड्यूल में मॉडल और फ़ॉर्म फ़ील्ड के साथ उपयोग करने के लिए django.core.validators योग्य सत्यापनकर्ताओं का संग्रह होता है। वे आंतरिक रूप से उपयोग किए जाते हैं लेकिन आपके अपने क्षेत्रों के साथ भी उपयोग के लिए उपलब्ध हैं। उनका उपयोग कस्टम field.clean() विधियों के अलावा, या इसके अलावा किया जा सकता है।

RegexValidator

class RegexValidator(regex=None, message=None, code=None, inverse_match=None, flags=0) [source]
पैरामीटर:
  • regex - यदि कोई None , तो regex ओवरराइड करता है। एक नियमित अभिव्यक्ति स्ट्रिंग या पूर्व-संकलित नियमित अभिव्यक्ति हो सकती है।
  • संदेश - यदि कोई None , तो message ओवरराइड करता है।
  • कोड - यदि कोई None , तो code ओवरराइड करता है।
  • inverse_match - यदि कोई None , तो inverse_match ओवरराइड inverse_match
  • झंडे - यदि कोई None , तो flags उखाड़ flags । उस स्थिति में, regex एक नियमित अभिव्यक्ति स्ट्रिंग होना चाहिए, या TypeError को उठाया जाता है।
regex

प्रदान किए गए value या पूर्व-संकलित नियमित अभिव्यक्ति के भीतर खोजने के लिए नियमित अभिव्यक्ति पैटर्न। डिफ़ॉल्ट रूप से, यदि कोई मेल नहीं मिलता है, तो message और code साथ एक ValidationError उठाता है। उस मानक व्यवहार को inverse_match को True सेट करके उलटा किया जा सकता है, जिस स्थिति में मिलान पाए जाने पर ValidationError को उठाया जाता है। डिफ़ॉल्ट रूप से, किसी भी स्ट्रिंग (एक खाली स्ट्रिंग सहित) से मेल खाता है।

message

सत्यापन विफल होने पर त्रुटि संदेश का उपयोग किया जाता है। "Enter a valid value" लिए चूक।

code

सत्यापन विफल होने पर ValidationError द्वारा उपयोग किया जाने वाला त्रुटि कोड। "invalid" करने के लिए डिफ़ॉल्ट।

inverse_match

regex लिए मैच मोड। False करने के लिए चूक।

flags

नियमित अभिव्यक्ति स्ट्रिंग regex संकलित करते समय उपयोग किए गए झंडे। यदि regex एक पूर्व-संकलित नियमित अभिव्यक्ति है, और flags को ओवरराइड किया जाता है, तो TypeError को उठाया जाता है। चूक 0

EmailValidator

class EmailValidator(message=None, code=None, whitelist=None) [source]
पैरामीटर:
  • संदेश - यदि कोई None , तो message ओवरराइड करता है।
  • कोड - यदि कोई None , तो code ओवरराइड करता है।
  • श्वेतसूची - यदि कोई None , तो whitelist ओवरराइड करती whitelist
message

सत्यापन विफल होने पर त्रुटि संदेश का उपयोग किया जाता है। "Enter a valid email address" लिए चूक।

code

सत्यापन विफल होने पर ValidationError द्वारा उपयोग किया जाने वाला त्रुटि कोड। "invalid" करने के लिए डिफ़ॉल्ट।

whitelist

अनुमति देने के लिए ईमेल डोमेन के श्वेतसूची। डिफ़ॉल्ट रूप से, @ चिह्न के बाद जो भी दिखाई देता है उसे मान्य करने के लिए एक नियमित अभिव्यक्ति ( domain_regex विशेषता) का उपयोग किया जाता है। हालाँकि, यदि वह स्ट्रिंग वाइटेलिस्ट में दिखाई देती है, तो यह मान्यता बाईपास हो जाती है। यदि उपलब्ध नहीं कराया गया है, तो डिफ़ॉल्ट श्वेतसूची ['localhost'] । अन्य डोमेन जिनमें डॉट नहीं है, वे सत्यापन पास नहीं करेंगे, इसलिए आपको आवश्यकतानुसार उन्हें श्वेत सूची में लाना होगा।

URLValidator

class URLValidator(schemes=None, regex=None, message=None, code=None) [source]

एक RegexValidator जो एक मान सुनिश्चित करता है कि एक URL जैसा दिखता है, और यदि यह नहीं है तो 'invalid' का एक त्रुटि कोड उठाता है।

लूपबैक पते और आरक्षित आईपी स्थान वैध माने जाते हैं। शाब्दिक IPv6 पते ( RFC 2732 ) और यूनिकोड डोमेन दोनों समर्थित हैं।

अपने मूल RegexValidator वर्ग के वैकल्पिक तर्कों के अलावा, URLValidator एक अतिरिक्त वैकल्पिक विशेषता स्वीकार करता है:

schemes

के विरुद्ध मान्य करने के लिए URL / URI योजना सूची। यदि उपलब्ध नहीं कराया गया है, तो डिफ़ॉल्ट सूची ['http', 'https', 'ftp', 'ftps'] । एक संदर्भ के रूप में, IANA वेबसाइट वैध यूआरआई योजनाओं की एक पूरी सूची प्रदान करती है

validate_email

validate_email

किसी भी अनुकूलन के बिना एक EmailValidator उदाहरण।

validate_slug

validate_slug

एक RegexValidator उदाहरण है कि एक मूल्य सुनिश्चित करता है केवल अक्षर, संख्या, अंडरस्कोर या हाइफ़न होते हैं।

validate_unicode_slug

validate_unicode_slug

एक RegexValidator उदाहरण है कि एक मूल्य सुनिश्चित करता है केवल यूनिकोड पत्र, संख्या, अंडरस्कोर, या हाइफ़न होते हैं।

validate_ipv4_address

validate_ipv4_address [source]

एक RegexValidator उदाहरण जो एक मान सुनिश्चित करता है, IPv4 पते की तरह दिखता है।

validate_ipv6_address

validate_ipv6_address [source]

IPv6 पते की वैधता की जांच करने के लिए django.utils.ipv6 का उपयोग करता है।

validate_ipv46_address

validate_ipv46_address [source]

मान सुनिश्चित करने के लिए validate_ipv6_address validate_ipv4_address और validate_ipv6_address दोनों का उपयोग करता है या तो एक मान्य IPv4 या IPv6 पता है।

validate_comma_separated_integer_list

validate_comma_separated_integer_list

एक RegexValidator उदाहरण जो मान सुनिश्चित करता है, पूर्णांक की अल्पविराम से अलग सूची है।

int_list_validator

int_list_validator(sep=', ', message=None, code='invalid', allow_negative=False) [source]

एक RegexValidator उदाहरण देता है जो यह सुनिश्चित करता है कि एक स्ट्रिंग sep द्वारा अलग किए गए पूर्णांक से युक्त हो। यह नकारात्मक पूर्णांक तब अनुमति देता है जब allow_negative True

MaxValueValidator

class MaxValueValidator(limit_value, message=None) [source]

यदि value limit_value से अधिक है, तो 'max_value' कोड के साथ एक ValidationError उठाता है।

MinValueValidator

class MinValueValidator(limit_value, message=None) [source]

यदि value limit_value से कम है, तो 'min_value' कोड के साथ एक ValidationError उठाता है।

MaxLengthValidator

class MaxLengthValidator(limit_value, message=None) [source]

यदि value की लंबाई limit_value से अधिक है, तो ' limit_value 'max_length' कोड के साथ एक ValidationError उठाता है।

MinLengthValidator

class MinLengthValidator(limit_value, message=None) [source]

value की लंबाई limit_value से कम होने पर 'min_length' कोड के साथ एक ValidationError उठाता है।

DecimalValidator

class DecimalValidator(max_digits, decimal_places) [source]

निम्नलिखित कोड के साथ ValidationError उठाता है:

  • 'max_digits' यदि अंकों की संख्या max_digits से बड़ी है।
  • अगर दशमलव की संख्या decimal_places से बड़ी है तो 'max_decimal_places'
  • 'max_whole_digits' अगर पूरे अंकों की संख्या max_digits और decimal_places बीच के अंतर से बड़ा है।

FileExtensionValidator

class FileExtensionValidator(allowed_extensions, message, code) [source]

यदि value.name ( value एक File ) का एक्सटेंशन value.name में नहीं पाया जाता है, तो 'invalid_extension' value.name का एक कोड 'invalid_extension' साथ एक allowed_extensions । एक्सटेंशन की तुलना केस-असंवेदनशील allowed_extensions साथ की allowed_extensions

चेतावनी

फ़ाइल के प्रकार को निर्धारित करने के लिए फ़ाइल एक्सटेंशन के सत्यापन पर भरोसा न करें। फ़ाइलों का नाम बदला जा सकता है चाहे उनके पास कोई भी डेटा हो।

validate_image_file_extension

validate_image_file_extension [source]

यह सुनिश्चित करने के लिए तकिया का उपयोग करता है कि value.name ( value एक File ) में एक मान्य छवि एक्सटेंशन है

ProhibitNullCharactersValidator

class ProhibitNullCharactersValidator(message=None, code=None) [source]
Django 2.0 में नया:

यदि कोई str(value) एक या एक से अधिक अशक्त वर्ण ( '\x00' ) उठाता है, तो ValidationError

पैरामीटर:
  • संदेश - यदि कोई None , तो message ओवरराइड करता है।
  • कोड - यदि कोई None , तो code ओवरराइड करता है।
message

सत्यापन विफल होने पर त्रुटि संदेश का उपयोग किया जाता है। डिफ़ॉल्ट रूप से "Null characters are not allowed."

code

सत्यापन विफल होने पर ValidationError द्वारा उपयोग किया जाने वाला त्रुटि कोड। "null_characters_not_allowed" लिए डिफ़ॉल्ट।