Django 2.1
Validators

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
करने के लिए चूक।
-
regex
- यदि कोई
EmailValidator
-
class EmailValidator(message=None, code=None, whitelist=None)
[source] -
पैरामीटर: -
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
पैरामीटर: -
message
-
सत्यापन विफल होने पर त्रुटि संदेश का उपयोग किया जाता है। डिफ़ॉल्ट रूप से
"Null characters are not allowed."
।
-
code
-
सत्यापन विफल होने पर
ValidationError
द्वारा उपयोग किया जाने वाला त्रुटि कोड।"null_characters_not_allowed"
लिए डिफ़ॉल्ट।
-