Django 2.1 - Form fields
फार्म फ़ील्ड्स

फार्म फ़ील्ड्स
-
class Field(**kwargs)
[source]
जब आप एक
Form
क्लास बनाते हैं, तो सबसे महत्वपूर्ण हिस्सा फॉर्म के क्षेत्रों को परिभाषित करता है।
प्रत्येक क्षेत्र में कुछ अन्य हुक के साथ कस्टम सत्यापन तर्क है।
-
Field.clean(value)
[source]
यद्यपि आप प्राथमिक कक्षाओं में प्राथमिक कक्षाओं का उपयोग करेंगे, लेकिन आप उनका उपयोग तुरंत कर सकते हैं और उन्हें सीधे उपयोग कर सकते हैं कि वे कैसे काम करते हैं।
प्रत्येक
Field
उदाहरण में एक
clean()
विधि होती है, जो एकल तर्क लेती है और या तो
django.forms.ValidationError
अपवाद को उठाती है या स्वच्छ मान लौटाती है:
>>> from django import forms >>> f = forms.EmailField() >>> f.clean('[email protected]') '[email protected]' >>> f.clean('invalid email address') Traceback (most recent call last): ... ValidationError: ['Enter a valid email address.']
मुख्य क्षेत्र तर्क
प्रत्येक
Field
वर्ग निर्माता कम से कम इन तर्कों को लेता है।
कुछ
Field
कक्षाएं अतिरिक्त, फ़ील्ड-विशिष्ट तर्क लेती हैं, लेकिन निम्नलिखित को
हमेशा
स्वीकार किया जाना चाहिए:
required
-
Field.required
डिफ़ॉल्ट रूप से, प्रत्येक
Field
वर्ग मान लेता है कि मूल्य की आवश्यकता है, इसलिए यदि आप एक खाली मान पास करते हैं - या तो
None
या रिक्त स्ट्रिंग (
""
) - तब
clean()
एक
ValidationError
अपवाद को बढ़ाएगा:
>>> from django import forms >>> f = forms.CharField() >>> f.clean('foo') 'foo' >>> f.clean('') Traceback (most recent call last): ... ValidationError: ['This field is required.'] >>> f.clean(None) Traceback (most recent call last): ... ValidationError: ['This field is required.'] >>> f.clean(' ') ' ' >>> f.clean(0) '0' >>> f.clean(True) 'True' >>> f.clean(False) 'False'
यह निर्दिष्ट करने के लिए कि किसी फ़ील्ड की आवश्यकता
नहीं
है,
required=False
पास करें
required=False
Field
निर्माता को
required=False
:
>>> f = forms.CharField(required=False) >>> f.clean('foo') 'foo' >>> f.clean('') '' >>> f.clean(None) '' >>> f.clean(0) '0' >>> f.clean(True) 'True' >>> f.clean(False) 'False'
यदि किसी
Field
की
required=False
और आप खाली मान
clean()
खाली मान पास करते हैं, तो
clean()
ValidationError
बढ़ाने के बजाय
सामान्यीकृत
रिक्त मान लौटाएगा।
CharField
, यह एक खाली स्ट्रिंग होगा।
अन्य
Field
कक्षाओं के लिए, यह
None
हो सकता है।
(यह एक क्षेत्र से दूसरे क्षेत्र में भिन्न होता है।)
आवश्यक फ़ॉर्म फ़ील्ड के विजेट में आवश्यक HTML विशेषता होती है।
इसे अक्षम करने के लिए
Form.use_required_attribute
विशेषता को
False
पर सेट करें।
required
विशेषता फॉर्मेट्स के रूपों में शामिल नहीं है क्योंकि फ़ॉर्मेट को जोड़ने और हटाने पर ब्राउज़र सत्यापन सही नहीं हो सकता है।
label
-
Field.label
label
तर्क आपको इस क्षेत्र के लिए "मानव-अनुकूल" लेबल निर्दिष्ट करने देता है।
इसका उपयोग तब किया जाता है जब
Field
को
Form
में प्रदर्शित किया जाता है।
जैसा कि ऊपर "HTML के रूप में आउटपुट स्वरूप" में समझाया गया है,
Field
लिए डिफ़ॉल्ट लेबल फ़ील्ड नाम से सभी अंडरस्कोर को रिक्त स्थान में परिवर्तित करके और पहले अक्षर को ऊपरी आवरण में उत्पन्न होता है।
निर्दिष्ट करें कि यदि उस डिफ़ॉल्ट व्यवहार के परिणामस्वरूप पर्याप्त लेबल नहीं है।
यहां एक पूर्ण उदाहरण
Form
जो अपने दो क्षेत्रों के लिए
label
लागू करता है।
हमने
auto_id=False
आउटपुट को सरल बनाने के लिए
auto_id=False
निर्दिष्ट किया है:
>>> from django import forms >>> class CommentForm(forms.Form): ... name = forms.CharField(label='Your name') ... url = forms.URLField(label='Your website', required=False) ... comment = forms.CharField() >>> f = CommentForm(auto_id=False) >>> print(f) <tr><th>Your name:</th><td><input type="text" name="name" required></td></tr> <tr><th>Your website:</th><td><input type="url" name="url"></td></tr> <tr><th>Comment:</th><td><input type="text" name="comment" required></td></tr>
label_suffix
-
Field.label_suffix
label_suffix
तर्क आपको प्रपत्र-फ़ील्ड के आधार पर फ़ॉर्म के
label_suffix
को ओवरराइड करने देता है:
>>> class ContactForm(forms.Form): ... age = forms.IntegerField() ... nationality = forms.CharField() ... captcha_answer = forms.IntegerField(label='2 + 2', label_suffix=' =') >>> f = ContactForm(label_suffix='?') >>> print(f.as_p()) <p><label for="id_age">Age?</label> <input id="id_age" name="age" type="number" required></p> <p><label for="id_nationality">Nationality?</label> <input id="id_nationality" name="nationality" type="text" required></p> <p><label for="id_captcha_answer">2 + 2 =</label> <input id="id_captcha_answer" name="captcha_answer" type="number" required></p>
initial
-
Field.initial
initial
तर्क आपको इस
Field
को अनबाउंड
Form
में प्रस्तुत करते समय उपयोग करने के लिए प्रारंभिक मान निर्दिष्ट करने देता है।
डायनामिक आरंभिक डेटा निर्दिष्ट करने के लिए,
Form.initial
पैरामीटर देखें।
इसके लिए उपयोग-मामला तब है जब आप एक "रिक्त" फॉर्म प्रदर्शित करना चाहते हैं जिसमें किसी क्षेत्र को किसी विशेष मान से आरंभ किया जाता है। उदाहरण के लिए:
>>> from django import forms >>> class CommentForm(forms.Form): ... name = forms.CharField(initial='Your name') ... url = forms.URLField(initial='http://') ... comment = forms.CharField() >>> f = CommentForm(auto_id=False) >>> print(f) <tr><th>Name:</th><td><input type="text" name="name" value="Your name" required></td></tr> <tr><th>Url:</th><td><input type="url" name="url" value="http://" required></td></tr> <tr><th>Comment:</th><td><input type="text" name="comment" required></td></tr>
आप सोच रहे होंगे, कि फॉर्म प्रदर्शित करते समय डेटा के रूप में प्रारंभिक मानों का एक शब्दकोश ही क्यों न पारित किया जाए? ठीक है, यदि आप ऐसा करते हैं, तो आप सत्यापन को ट्रिगर करेंगे, और HTML आउटपुट में कोई भी सत्यापन त्रुटियाँ शामिल होंगी:
>>> class CommentForm(forms.Form): ... name = forms.CharField() ... url = forms.URLField() ... comment = forms.CharField() >>> default_data = {'name': 'Your name', 'url': 'http://'} >>> f = CommentForm(default_data, auto_id=False) >>> print(f) <tr><th>Name:</th><td><input type="text" name="name" value="Your name" required></td></tr> <tr><th>Url:</th><td><ul class="errorlist"><li>Enter a valid URL.</li></ul><input type="url" name="url" value="http://" required></td></tr> <tr><th>Comment:</th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="comment" required></td></tr>
यही कारण है कि
initial
मान केवल अनबाउंड रूपों के लिए प्रदर्शित किए जाते हैं।
बाध्य प्रपत्रों के लिए, HTML आउटपुट बाध्य डेटा का उपयोग करेगा।
यह भी ध्यान दें कि यदि किसी विशेष क्षेत्र का मान नहीं दिया गया है तो सत्यापन में
initial
मानों को "फॉलबैक" डेटा के रूप में उपयोग
नहीं
किया जाता है।
initial
मान
केवल
प्रारंभिक प्रपत्र प्रदर्शन के लिए अभिप्रेत हैं:
>>> class CommentForm(forms.Form): ... name = forms.CharField(initial='Your name') ... url = forms.URLField(initial='http://') ... comment = forms.CharField() >>> data = {'name': '', 'url': '', 'comment': 'Foo'} >>> f = CommentForm(data) >>> f.is_valid() False # The form does *not* fall back to using the initial values. >>> f.errors {'url': ['This field is required.'], 'name': ['This field is required.']}
एक स्थिर के बजाय, आप किसी भी कॉल करने योग्य पास कर सकते हैं:
>>> import datetime >>> class DateForm(forms.Form): ... day = forms.DateField(initial=datetime.date.today) >>> print(DateForm()) <tr><th>Day:</th><td><input type="text" name="day" value="12/23/2008" required><td></tr>
कॉल करने योग्य का मूल्यांकन केवल तभी किया जाएगा जब अनबाउंड फॉर्म प्रदर्शित किया जाता है, न कि जब इसे परिभाषित किया जाता है।
widget
-
Field.widget
widget
तर्क आपको इस
Field
प्रस्तुत करते समय उपयोग करने के लिए एक
Widget
वर्ग निर्दिष्ट करता है।
अधिक जानकारी के लिए
Widgets
देखें।
help_text
-
Field.help_text
help_text
तर्क आपको इस
Field
लिए वर्णनात्मक पाठ निर्दिष्ट करने देता है।
यदि आप
help_text
प्रदान करते हैं, तो इसे
Field
बगल में प्रदर्शित किया जाएगा जब
Field
सुविधा
Form
विधियों (जैसे,
as_ul()
) में से एक द्वारा प्रदान की जाती है।
मॉडल फ़ील्ड के
help_text
, यह मान स्वचालित रूप से जनरेट किए गए फ़ॉर्मों में HTML-एस्केप नहीं है।
यहां एक पूर्ण उदाहरण
Form
जो अपने दो क्षेत्रों के लिए
help_text
को लागू करता है।
हमने
auto_id=False
आउटपुट को सरल बनाने के लिए
auto_id=False
निर्दिष्ट किया है:
>>> from django import forms >>> class HelpTextContactForm(forms.Form): ... subject = forms.CharField(max_length=100, help_text='100 characters max.') ... message = forms.CharField() ... sender = forms.EmailField(help_text='A valid email address, please.') ... cc_myself = forms.BooleanField(required=False) >>> f = HelpTextContactForm(auto_id=False) >>> print(f.as_table()) <tr><th>Subject:</th><td><input type="text" name="subject" maxlength="100" required><br><span class="helptext">100 characters max.</span></td></tr> <tr><th>Message:</th><td><input type="text" name="message" required></td></tr> <tr><th>Sender:</th><td><input type="email" name="sender" required><br>A valid email address, please.</td></tr> <tr><th>Cc myself:</th><td><input type="checkbox" name="cc_myself"></td></tr> >>> print(f.as_ul())) <li>Subject: <input type="text" name="subject" maxlength="100" required> <span class="helptext">100 characters max.</span></li> <li>Message: <input type="text" name="message" required></li> <li>Sender: <input type="email" name="sender" required> A valid email address, please.</li> <li>Cc myself: <input type="checkbox" name="cc_myself"></li> >>> print(f.as_p()) <p>Subject: <input type="text" name="subject" maxlength="100" required> <span class="helptext">100 characters max.</span></p> <p>Message: <input type="text" name="message" required></p> <p>Sender: <input type="email" name="sender" required> A valid email address, please.</p> <p>Cc myself: <input type="checkbox" name="cc_myself"></p>
error_messages
-
Field.error_messages
error_messages
तर्क आपको डिफ़ॉल्ट संदेशों को ओवरराइड करने देता है जो फ़ील्ड बढ़ाएगा।
उन कुंजियों के साथ एक शब्दकोश में पास करें जिसमें त्रुटि संदेश मेल खाते हैं जिन्हें आप ओवरराइड करना चाहते हैं।
उदाहरण के लिए, यहां डिफ़ॉल्ट त्रुटि संदेश है:
>>> from django import forms >>> generic = forms.CharField() >>> generic.clean('') Traceback (most recent call last): ... ValidationError: ['This field is required.']
और यहाँ एक कस्टम त्रुटि संदेश है:
>>> name = forms.CharField(error_messages={'required': 'Please enter your name'}) >>> name.clean('') Traceback (most recent call last): ... ValidationError: ['Please enter your name']
नीचे
अंतर्निहित फ़ील्ड वर्ग
अनुभाग में, प्रत्येक
Field
उस त्रुटि संदेश कुंजियों को परिभाषित करता है जिसका वह उपयोग करता है।
validators
-
Field.validators
validators
तर्क आपको इस क्षेत्र के सत्यापन कार्यों की सूची प्रदान करता है।
अधिक जानकारी के लिए सत्यापनकर्ता दस्तावेज देखें।
localize
-
Field.localize
localize
तर्क प्रपत्र डेटा इनपुट, साथ ही प्रदान किए गए आउटपुट के स्थानीयकरण को सक्षम करता है।
अधिक जानकारी के लिए प्रारूप स्थानीयकरण प्रलेखन देखें।
disabled
-
Field.disabled
disabled
बूलियन तर्क, जब
True
सेट होता है, अक्षम HTML विशेषता का उपयोग करते हुए एक फॉर्म फ़ील्ड अक्षम करता है ताकि यह उपयोगकर्ताओं द्वारा संपादन योग्य न हो।
यहां तक कि अगर कोई उपयोगकर्ता सर्वर पर सबमिट किए गए फ़ील्ड के मान के साथ छेड़छाड़ करता है, तो इसे फॉर्म के प्रारंभिक डेटा से मूल्य के पक्ष में अनदेखा किया जाएगा।
फ़ील्ड डेटा बदल गया है या नहीं, इसकी जाँच करना
has_changed()
-
Field.has_changed()
[source]
फ़ील्ड मान को प्रारंभिक मान से बदल गया है, तो यह निर्धारित करने के लिए
has_changed()
विधि का उपयोग किया जाता है।
True
या
False
लौटाता है।
अधिक जानकारी के लिए
Form.has_changed()
प्रलेखन देखें।
बिल्ट-इन
Field
कक्षाएं
स्वाभाविक रूप से,
forms
लायब्रेरी
Field
वर्गों के एक सेट के साथ आती है जो सामान्य सत्यापन आवश्यकताओं का प्रतिनिधित्व करती है।
यह खंड प्रत्येक अंतर्निहित फ़ील्ड में दस्तावेज़ बनाता है।
यदि आप
widget
निर्दिष्ट नहीं करते हैं, तो प्रत्येक फ़ील्ड के लिए, हम डिफ़ॉल्ट विजेट का उपयोग करते हैं।
जब आप खाली मान प्रदान करते हैं तो हम दिए गए मान को भी निर्दिष्ट करते हैं (ऊपर दिए गए अनुभाग को देखें कि इसका क्या अर्थ है)।
BooleanField
-
class BooleanField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
CheckboxInput
-
रिक्त मान:
False
-
इसे सामान्य करता है: एक पायथन
True
याFalse
मान। -
मान लेता है कि मान
True
(जैसे चेक बॉक्स की जाँच की जाती है) यदि फ़ील्ड के लिएrequired=True
। -
त्रुटि संदेश कुंजी:
required
ध्यान दें
चूंकि सभी
Field
उपवर्गों के लिएrequired=True
डिफ़ॉल्ट रूप सेrequired=True
, यहां सत्यापन स्थिति महत्वपूर्ण है। यदि आप अपने फॉर्म में एक बूलियन शामिल करना चाहते हैं जो या तोTrue
याFalse
हो सकता है (उदाहरण के लिए चेक या अनचेक किया हुआ चेकबॉक्स), तो आपकोBooleanField
बनाते समयrequired=False
में पास होना याद रखना चाहिए। -
डिफ़ॉल्ट विजेट:
CharField
-
class CharField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
खाली मान: आपने जो कुछ भी दिया है,
empty_value
। - को सामान्य करता है: एक स्ट्रिंग।
-
MaxLengthValidator
औरMinLengthValidator
उपयोग करता है यदिMaxLengthValidator
औरMinLengthValidator
प्रदान की जाती है। अन्यथा, सभी इनपुट मान्य हैं। -
त्रुटि संदेश कुंजियाँ:
required
,min_length
,min_length
सत्यापन के लिए तीन वैकल्पिक तर्क हैं:
-
max_length
-
min_length
यदि प्रदान किया जाता है, तो ये तर्क सुनिश्चित करते हैं कि स्ट्रिंग अधिक से अधिक या कम से कम दी गई लंबाई है।
-
strip
-
यदि
True
(डिफ़ॉल्ट), मान व्हाट्सएप से अग्रणी और अनुगामी से छीन लिया जाएगा।
-
empty_value
-
"खाली" का प्रतिनिधित्व करने के लिए उपयोग करने के लिए मूल्य। एक खाली स्ट्रिंग में चूक।
-
डिफ़ॉल्ट विजेट:
ChoiceField
-
class ChoiceField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
Select
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग।
- मान्य करता है कि दिए गए मूल्य विकल्पों की सूची में मौजूद हैं।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid_choice
invalid_choice
त्रुटि संदेश में%(value)s
हो सकता है, जिसे चयनित विकल्प से बदल दिया जाएगा।एक अतिरिक्त तर्क देता है:
-
choices
-
इस क्षेत्र के लिए विकल्प के रूप में उपयोग करने के लिए 2-ट्यूपल्स का या तो एक चलने योग्य (जैसे, एक सूची या टुपल) या एक कॉल करने योग्य जो इस तरह के पुनरावृत्ति देता है। यह तर्क मॉडल फ़ील्ड के लिए
choices
तर्क के समान स्वरूपों को स्वीकार करता है। अधिक विवरण के लिए विकल्पों पर मॉडल फ़ील्ड संदर्भ दस्तावेज़ देखें। यदि तर्क एक कॉल करने योग्य है, तो यह मूल्यांकन किया जाता है कि हर बार क्षेत्र के रूप को आरंभीकृत किया गया है। खाली सूची में चूक।
-
डिफ़ॉल्ट विजेट:
TypedChoiceField
-
class TypedChoiceField(**kwargs)
[source] -
ChoiceField
तरह,ChoiceField
को छोड़कर दो अतिरिक्त तर्क,empty_value
औरempty_value
।-
डिफ़ॉल्ट विजेट:
Select
-
खाली मान: आपने जो कुछ भी दिया है,
empty_value
। -
के लिए सामान्यीकृत:
coerce
तर्क द्वारा प्रदान किए गए प्रकार का एक मूल्य। - मान्य करता है कि दिए गए मूल्य विकल्पों की सूची में मौजूद हैं और उन्हें ज़ब्त किया जा सकता है।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid_choice
अतिरिक्त तर्क देता है:
-
coerce
-
एक फ़ंक्शन जो एक तर्क लेता है और एक ज़ोरदार मान देता है। उदाहरणों में अंतर्निर्मित,
float
,bool
और अन्य प्रकार शामिल हैं। एक पहचान समारोह के लिए चूक। ध्यान दें कि इनपुट सत्यापन के बाद ज़बरदस्ती होती है, इसलिएchoices
में मौजूद मूल्य पर जोर देना संभव है।
-
empty_value
-
"रिक्त" का प्रतिनिधित्व करने के लिए उपयोग करने के लिए मान रिक्त स्ट्रिंग के लिए डिफ़ॉल्ट;
None
भी अन्य आम पसंदNone
है। ध्यान दें कि यह मानcoerce
तर्क में दिए गए फ़ंक्शन द्वारा ज़ब्त नहीं किया जाएगा, इसलिए इसे उसी के अनुसार चुनें।
-
डिफ़ॉल्ट विजेट:
DateField
-
class DateField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
DateInput
-
खाली मान:
None
-
इसे सामान्य करता है: एक पायथन
datetime.date
ऑब्जेक्ट। -
पुष्टि करता है कि दिया गया मान या तो
datetime.date
,datetime.datetime
/datetime.datetime
या स्ट्रिंग एक विशेष तिथि प्रारूप में स्वरूपित है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
एक वैकल्पिक तर्क लेता है:
-
input_formats
-
एक स्ट्रिंग को एक वैध
datetime.date
ऑब्जेक्ट में बदलने का प्रयास करने के लिए उपयोग किए जाने वाले प्रारूपों की एक सूची।
यदि कोई
input_formats
तर्क प्रदान नहीं किया गया है, तो डिफ़ॉल्ट इनपुट प्रारूप हैं:['%Y-%m-%d', # '2006-10-25' '%m/%d/%Y', # '10/25/2006' '%m/%d/%y'] # '10/25/06'
इसके अतिरिक्त, यदि आप अपनी सेटिंग में
USE_L10N=False
निर्दिष्ट करते हैं, तो निम्नलिखित को भी डिफ़ॉल्ट इनपुट स्वरूपों में शामिल किया जाएगा:['%b %d %Y', # 'Oct 25 2006' '%b %d, %Y', # 'Oct 25, 2006' '%d %b %Y', # '25 Oct 2006' '%d %b, %Y', # '25 Oct, 2006' '%B %d %Y', # 'October 25 2006' '%B %d, %Y', # 'October 25, 2006' '%d %B %Y', # '25 October 2006' '%d %B, %Y'] # '25 October, 2006'
स्थानीयकरण का प्रारूप भी देखें।
-
डिफ़ॉल्ट विजेट:
DateTimeField
-
class DateTimeField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
DateTimeInput
-
खाली मान:
None
-
इसके लिए सामान्यीकृत करता है: एक पायथन
datetime.datetime
ऑब्जेक्ट। -
पुष्टि करता है कि दिया गया मान या तो एक
datetime.datetime
,datetime.date
या स्ट्रिंग एक विशेष डेटाइम प्रारूप में स्वरूपित है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
एक वैकल्पिक तर्क लेता है:
-
input_formats
-
किसी स्ट्रिंग को एक मान्य
datetime.datetime
ऑब्जेक्ट में कनवर्ट करने का प्रयास करने के लिए उपयोग किए गए प्रारूपों की एक सूची।
यदि कोई
input_formats
तर्क प्रदान नहीं किया गया है, तो डिफ़ॉल्ट इनपुट प्रारूप हैं:['%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' '%Y-%m-%d %H:%M', # '2006-10-25 14:30' '%Y-%m-%d', # '2006-10-25' '%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59' '%m/%d/%Y %H:%M', # '10/25/2006 14:30' '%m/%d/%Y', # '10/25/2006' '%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59' '%m/%d/%y %H:%M', # '10/25/06 14:30' '%m/%d/%y'] # '10/25/06'
स्थानीयकरण का प्रारूप भी देखें।
-
डिफ़ॉल्ट विजेट:
DecimalField
-
class DecimalField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
NumberInput
जबField.localize
False
, तोTextInput
। -
खाली मान:
None
-
सामान्यीकृत करता है: एक पायथन
decimal
। -
पुष्टि करता है कि दिया गया मान एक दशमलव है।
MaxValueValidator
औरMinValueValidator
उपयोग करता है यदिmax_value
औरmin_value
प्रदान किएmin_value
हैं। व्हाट्सएप पर लीडिंग और ट्रेलिंग को नजरअंदाज किया जाता है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,max_value
,min_value
,max_digits
,max_decimal_places
,max_whole_digits
max_value
औरmin_value
त्रुटि संदेशों में%(limit_value)s
हो सकते हैं, जिन्हें उचित सीमा द्वारा प्रतिस्थापित किया जाएगा। इसी तरह,max_digits
,max_decimal_places
औरmax_whole_digits
त्रुटि संदेशों में%(max)s
हो सकता है।चार वैकल्पिक तर्क देता है:
-
max_value
-
min_value
-
ये क्षेत्र में अनुमत मानों की श्रेणी को नियंत्रित करते हैं, और
decimal.Decimal
रूप में दिया जाना चाहिए।decimal.Decimal
मान।
-
max_digits
-
अंकों की अधिकतम संख्या (दशमलव बिंदु से पहले उन लोगों के अलावा जो दशमलव बिंदु के बाद, प्रमुख शून्य छीन लिए गए) के मूल्य में अनुमत है।
-
decimal_places
-
अधिकतम दशमलव स्थानों की अनुमति है।
-
डिफ़ॉल्ट विजेट:
DurationField
-
class DurationField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
खाली मान:
None
-
को सामान्य करता है: एक पायथन
timedelta
। -
पुष्टि करता है कि दिया गया मूल्य एक स्ट्रिंग है जिसे एक
timedelta
में परिवर्तित किया जा सकता है। मानdatetime.timedelta.min
औरdatetime.timedelta.max
बीच होना चाहिए। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,overflow
।
parse_duration()
द्वारा समझे गए किसी भी प्रारूप को स्वीकार करता है। -
डिफ़ॉल्ट विजेट:
EmailField
-
class EmailField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
EmailInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग।
-
एक मान्य ईमेल पते का उपयोग करके मान्य करने के लिए
EmailValidator
का उपयोग करता है, एक मामूली जटिल नियमित अभिव्यक्ति का उपयोग करके। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
सत्यापन के लिए दो वैकल्पिक तर्क हैं,
min_length
औरmin_length
। यदि प्रदान किया जाता है, तो ये तर्क सुनिश्चित करते हैं कि स्ट्रिंग अधिक से अधिक या कम से कम दी गई लंबाई है। -
डिफ़ॉल्ट विजेट:
FileField
-
class FileField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
ClearableFileInput
-
खाली मान:
None
-
सामान्यीकृत करता है: एक
UploadedFile
ऑब्जेक्ट जो फ़ाइल सामग्री और फ़ाइल नाम को एक ही ऑब्जेक्ट में लपेटता है। - यह सत्यापित कर सकता है कि गैर-रिक्त फ़ाइल डेटा प्रपत्र के लिए बाध्य है।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid
,missing
,empty
,max_length
सत्यापन के लिए दो वैकल्पिक तर्क हैं,
allow_empty_file
औरallow_empty_file
। यदि प्रदान किया जाता है, तो ये सुनिश्चित करते हैं कि फ़ाइल का नाम दी गई लंबाई पर है, और फ़ाइल सामग्री खाली होने पर भी सत्यापन सफल होगा।UploadedFile
ऑब्जेक्ट के बारे में अधिक जानने के लिए, फ़ाइल अपलोड प्रलेखन देखें ।जब आप किसी फॉर्म में
FileField
उपयोग करते हैं, तो आपको फाइल डेटा को फॉर्म में बांधना भी याद रखना चाहिए।max_length
त्रुटि फ़ाइल नाम की लंबाई को संदर्भित करती है। उस कुंजी के लिए त्रुटि संदेश में,%(max)d
को अधिकतम फ़ाइल नाम लंबाई के साथ बदल दिया जाएगा और%(length)d
को वर्तमान फ़ाइल नाम लंबाई के साथ बदल दिया जाएगा। -
डिफ़ॉल्ट विजेट:
FilePathField
-
class FilePathField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
Select
-
खाली मान:
None
- को सामान्य करता है: एक स्ट्रिंग।
- सत्यापित करता है कि चयनित विकल्प विकल्पों की सूची में मौजूद है।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid_choice
क्षेत्र एक निश्चित निर्देशिका के अंदर फ़ाइलों से चुनने की अनुमति देता है। यह पाँच अतिरिक्त तर्क लेता है; केवल
path
की आवश्यकता है:-
path
-
निर्देशिका के लिए पूर्ण पथ जिसकी सामग्री आप सूचीबद्ध करना चाहते हैं। यह निर्देशिका मौजूद होनी चाहिए।
-
recursive
-
यदि
False
(डिफ़ॉल्ट) केवलpath
की प्रत्यक्ष सामग्री को विकल्प के रूप में पेश किया जाएगा। यदि यहTrue
, तो निर्देशिका को पुनरावर्ती रूप में उतारा जाएगा और सभी वंशों को विकल्पों के रूप में सूचीबद्ध किया जाएगा।
-
match
-
एक नियमित अभिव्यक्ति पैटर्न; इस अभिव्यक्ति से मेल खाने वाले नामों की केवल फाइलों को ही विकल्प के रूप में अनुमति दी जाएगी।
-
allow_files
-
वैकल्पिक। या तो
True
याFalse
। डिफ़ॉल्टTrue
। निर्दिष्ट करता है कि निर्दिष्ट स्थान की फाइलें शामिल की जानी चाहिए या नहीं। या तो यह याallow_folders
True
होना चाहिए।
-
allow_folders
-
वैकल्पिक। या तो
True
याFalse
। डिफ़ॉल्टFalse
। निर्दिष्ट करता है कि क्या निर्दिष्ट स्थान में फ़ोल्डर्स शामिल किए जाने चाहिए। या तो यह याallow_files
True
होना चाहिए।
-
डिफ़ॉल्ट विजेट:
FloatField
-
class FloatField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
NumberInput
जबField.localize
False
, तोTextInput
। -
खाली मान:
None
- इसे सामान्य करता है: एक पायथन फ्लोट।
-
पुष्टि करता है कि दिया गया मान एक फ्लोट है।
MaxValueValidator
औरMinValueValidator
उपयोग करता है यदिmax_value
औरmin_value
प्रदान किएmin_value
हैं। अग्रणी और अनुगामी व्हाट्सएप की अनुमति है, जैसा कि पायथन केfloat()
फ़ंक्शन में है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,max_value
,min_value
सत्यापन के लिए दो वैकल्पिक तर्क देता है,
max_value
औरmin_value
। ये क्षेत्र में अनुमत मूल्यों की सीमा को नियंत्रित करते हैं। -
डिफ़ॉल्ट विजेट:
ImageField
-
class ImageField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
ClearableFileInput
-
खाली मान:
None
-
सामान्यीकृत करता है: एक
UploadedFile
ऑब्जेक्ट जो फ़ाइल सामग्री और फ़ाइल नाम को एक ही ऑब्जेक्ट में लपेटता है। -
मान्य करता है कि फ़ाइल डेटा प्रपत्र के लिए बाध्य है।
यह भी पुष्टि करने के लिए
FileExtensionValidator
का उपयोग करता है कि फ़ाइल एक्सटेंशन तकिए द्वारा समर्थित है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,missing
,empty
,invalid_image
ImageField
का उपयोग करने के लिए आवश्यक है कि आपके द्वारा उपयोग किए जाने वाले छवि प्रारूपों के समर्थन के साथ Pillow स्थापित हो। यदि आप किसी छवि को अपलोड करते समय एकcorrupt image
त्रुटि का सामना करते हैं, तो आमतौर पर इसका मतलब है कि तकिया इसके प्रारूप को नहीं समझता है। इसे ठीक करने के लिए, उपयुक्त लाइब्रेरी स्थापित करें और तकिया को पुनर्स्थापित करें।जब आप किसी फ़ॉर्म पर
ImageField
उपयोग करते हैं, तो आपको फ़ाइल डेटा को फ़ॉर्म में बाँधना भी याद रखना चाहिए।फ़ील्ड को साफ़ करने और सत्यापित करने के बाद,
UploadedFile
ऑब्जेक्ट में एक अतिरिक्तimage
विशेषता होगी, जिसमें पिलो Image उदाहरण शामिल है जो यह जांचने के लिए उपयोग किया जाता है कि क्या फ़ाइल एक वैध छवि थी। इसके अलावा,UploadedFile.content_type
छवि के सामग्री प्रकार के साथ अद्यतन किया जाएगा यदि तकिया इसे निर्धारित कर सकता है, अन्यथा यह किसी कोNone
सेटNone
। -
डिफ़ॉल्ट विजेट:
IntegerField
-
class IntegerField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
NumberInput
जबField.localize
False
, तोTextInput
। -
खाली मान:
None
- सामान्यीकृत करता है: एक पायथन पूर्णांक।
-
मान्य करता है कि दिया गया मान पूर्णांक है।
MaxValueValidator
औरMinValueValidator
उपयोग करता है यदिmax_value
औरmin_value
प्रदान किएmin_value
हैं। अग्रणी और अनुगामी व्हाट्सएप की अनुमति है, जैसा कि पायथन केint()
फ़ंक्शन में है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,max_value
,min_value
max_value
औरmin_value
त्रुटि संदेशों में%(limit_value)s
हो सकते हैं, जिन्हें उचित सीमा द्वारा प्रतिस्थापित किया जाएगा।सत्यापन के लिए दो वैकल्पिक तर्क देता है:
-
max_value
-
min_value
ये क्षेत्र में अनुमत मूल्यों की सीमा को नियंत्रित करते हैं।
-
डिफ़ॉल्ट विजेट:
GenericIPAddressField
-
class GenericIPAddressField(**kwargs)
[source] -
एक फ़ील्ड जिसमें IPv4 या IPv6 पता होता है।
-
डिफ़ॉल्ट विजेट:
TextInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग। IPv6 पतों को नीचे वर्णित के अनुसार सामान्यीकृत किया गया है।
- पुष्टि करता है कि दिया गया मान एक मान्य IP पता है।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid
IPv6 पता सामान्यीकरण RFC 4291 # अनुभाग-2.2 खंड 2.2 का अनुसरण करता है, जिसमें उस खंड के पैराग्राफ 3 में सुझाए गए IPv4 प्रारूप का उपयोग करना शामिल है, जैसे
::ffff:192.0.2.0
। उदाहरण के लिए,2001:0::0:01
को2001::1
, और::ffff:0a0a:0a0a
से::ffff:10.10.10.10
। सभी वर्णों को लोअरकेस में बदल दिया जाता है।दो वैकल्पिक तर्क देता है:
-
protocol
-
निर्दिष्ट प्रोटोकॉल में मान्य इनपुट्स को सीमित करता है। स्वीकृत मान
both
(डिफ़ॉल्ट),IPv4
याIPv6
। मिलान असंवेदनशील है।
-
unpack_ipv4
-
IPv4 मैप किए गए पते जैसे
::ffff:192.0.2.1
। यदि यह विकल्प सक्षम है तो पता192.0.2.1
अनपैक किया जाएगा। डिफ़ॉल्ट अक्षम है। केवल तब उपयोग किया जा सकता है जबprotocol
'both'
सेट हो।
-
डिफ़ॉल्ट विजेट:
MultipleChoiceField
-
class MultipleChoiceField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
SelectMultiple
-
रिक्त मान:
[]
(एक खाली सूची) - के लिए सामान्यीकृत: तार की एक सूची।
- मान्य करता है कि मूल्यों की दी गई सूची में हर मूल्य विकल्पों की सूची में मौजूद है।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid_choice
,invalid_list
invalid_choice
त्रुटि संदेश में%(value)s
हो सकता है, जिसे चयनित विकल्प से बदल दिया जाएगा।ChoiceField
लिए, एक अतिरिक्त आवश्यक तर्क,choices
ChoiceField
। -
डिफ़ॉल्ट विजेट:
TypedMultipleChoiceField
-
class TypedMultipleChoiceField(**kwargs)
[source] -
जैसे कि एक
TypedMultipleChoiceField
,TypedMultipleChoiceField
को छोड़कर, दो अतिरिक्त तर्क देता है,empty_value
औरempty_value
।-
डिफ़ॉल्ट विजेट:
SelectMultiple
-
खाली मान: आपने जो कुछ भी दिया है,
empty_value
-
सामान्यीकृत करता है:
coerce
तर्क द्वारा प्रदान किए गए प्रकार के मूल्यों की एक सूची। - मान्य करता है कि दिए गए मान विकल्पों की सूची में मौजूद हैं और उन्हें ज़ब्त किया जा सकता है।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid_choice
invalid_choice
त्रुटि संदेश में%(value)s
हो सकता है, जिसे चयनित विकल्प से बदल दिया जाएगा।empty_value
, दो अतिरिक्त तर्क देता है,empty_value
औरTypedChoiceField
। -
डिफ़ॉल्ट विजेट:
NullBooleanField
-
class NullBooleanField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
NullBooleanSelect
-
खाली मान:
None
-
इसके लिए सामान्यीकृत: एक पायथन
True
,False
याNone
मूल्यNone
। - कुछ भी नहीं मान्य (यानी, यह कभी भी वैधता नहीं बढ़ाता है)।
-
डिफ़ॉल्ट विजेट:
RegexField
-
class RegexField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग।
-
RegexValidator
का उपयोग यहRegexValidator
करने के लिए करता है कि दिए गए मूल्य एक निश्चित नियमित अभिव्यक्ति से मेल खाते हैं। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
एक आवश्यक तर्क लेता है:
-
regex
-
एक स्ट्रिंग या संकलित नियमित अभिव्यक्ति ऑब्जेक्ट के रूप में निर्दिष्ट एक नियमित अभिव्यक्ति।
साथ ही
min_length
,min_length
औरstrip
लेता है, जोCharField
ही काम करते हैं।-
strip
-
False
करने के लिए चूक। यदि सक्षम किया गया है, तो स्ट्रिपिंग को रेगेक्स सत्यापन से पहले लागू किया जाएगा।
-
डिफ़ॉल्ट विजेट:
SlugField
-
class SlugField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग।
-
मान्य_
validate_slug
याvalidate_unicode_slug
का उपयोग यहvalidate_slug
validate_unicode_slug
लिए करता है कि दिए गए मान में केवल अक्षर, संख्याएँ, अंडरस्कोर और हाइफ़न हैं। -
त्रुटि संदेश:
required
,invalid
इस क्षेत्र का उपयोग रूपों में एक मॉडल
SlugField
प्रतिनिधित्व करने के लिए किया जाता है।एक वैकल्पिक पैरामीटर लेता है:
-
allow_unicode
-
एक बूलियन जो ASCII पत्रों के अलावा यूनिकोड अक्षरों को स्वीकार करने के लिए क्षेत्र को निर्देश देता है।
False
करने के लिए चूक।
-
डिफ़ॉल्ट विजेट:
TimeField
-
class TimeField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
खाली मान:
None
-
इसे सामान्य करता है: एक पायथन
datetime.time
ऑब्जेक्ट। -
पुष्टि करता है कि दिया गया मान या तो एक विशेष समय प्रारूप में एक
datetime.time
या स्ट्रिंग स्वरूपित है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
एक वैकल्पिक तर्क लेता है:
-
input_formats
-
किसी स्ट्रिंग को एक मान्य
datetime.time
ऑब्जेक्ट में बदलने का प्रयास करने के लिए उपयोग किए जाने वाले प्रारूपों की एक सूची।
यदि कोई
input_formats
तर्क प्रदान नहीं किया गया है, तो डिफ़ॉल्ट इनपुट प्रारूप हैं:'%H:%M:%S', # '14:30:59' '%H:%M', # '14:30'
-
डिफ़ॉल्ट विजेट:
URLField
-
class URLField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
URLInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग।
-
URLValidator
का उपयोग यहURLValidator
करने के लिए करता है कि दिया गया मान मान्य URL है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
निम्नलिखित वैकल्पिक तर्क देता है:
-
max_length
-
min_length
ये
CharField.max_length
औरCharField.min_length
। -
डिफ़ॉल्ट विजेट:
UUIDField
-
class UUIDField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) -
सामान्यीकृत करता है: एक
UUID
वस्तु। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
यह क्षेत्र
UUID
कंस्ट्रक्टर केhex
तर्क के रूप में स्वीकार किए गए किसी भी स्ट्रिंग प्रारूप को स्वीकार करेगा। -
डिफ़ॉल्ट विजेट:
थोड़ा जटिल बिल्ट-इन
Field
कक्षाएं
ComboField
-
class ComboField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) - को सामान्य करता है: एक स्ट्रिंग।
-
ComboField
तर्क के रूप में निर्दिष्ट प्रत्येक फ़ील्ड के विरुद्ध दिए गए मान को मान्य करता है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
एक अतिरिक्त आवश्यक तर्क देता है:
-
fields
-
फ़ील्ड की सूची जिसका उपयोग फ़ील्ड के मान को मान्य करने के लिए किया जाना चाहिए (जिस क्रम में उन्हें प्रदान किया गया है)।
>>> from django.forms import ComboField >>> f = ComboField(fields=[CharField(max_length=20), EmailField()]) >>> f.clean('[email protected]') '[email protected]' >>> f.clean('[email protected]') Traceback (most recent call last): ... ValidationError: ['Ensure this value has at most 20 characters (it has 28).']
-
डिफ़ॉल्ट विजेट:
MultiValueField
-
class MultiValueField(fields=(), **kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
TextInput
-
रिक्त मान:
''
(एक रिक्त स्ट्रिंग) -
सामान्यीकृत करता है: उपवर्ग की
compress
विधि द्वारा लौटाया गया प्रकार। -
MultiValueField
तर्क के रूप में निर्दिष्ट प्रत्येक फ़ील्ड के विरुद्ध दिए गए मान को मान्य करता है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,incomplete
एक साथ कई क्षेत्रों के तर्क को एकत्रित करता है जो एक ही मूल्य का उत्पादन करते हैं।
यह क्षेत्र अमूर्त है और इसे उपवर्गित किया जाना चाहिए। एकल-मूल्य फ़ील्ड के विपरीत,
MultiValueField
उपवर्गों कोclean()
लागू नहीं करना चाहिए - बल्किcompress()
लागू करना चाहिए।एक अतिरिक्त आवश्यक तर्क देता है:
-
fields
-
उन क्षेत्रों का एक समूह जिसका मान साफ किया जाता है और बाद में एक एकल मूल्य में संयोजित किया जाता है। फ़ील्ड के प्रत्येक मान को फ़ील्ड में संबंधित फ़ील्ड द्वारा साफ़ किया जाता है - पहला मान पहले फ़ील्ड द्वारा साफ़ किया जाता है, दूसरे फ़ील्ड द्वारा दूसरा मान साफ़ किया जाता है, आदि सभी फ़ील्ड्स को साफ़ करने के बाद, स्वच्छ मानों की सूची को संयुक्त किया जाता है
compress()
द्वारा एक एकल मानcompress()
।
कुछ वैकल्पिक तर्क भी लेता है:
-
require_all_fields
-
किसी भी फ़ील्ड के लिए कोई मान प्रदान नहीं किए जाने पर,
True
लिए डिफ़ॉल्ट, जिस स्थिति में एकrequired
सत्यापन त्रुटि को उठाया जाएगा।जब
False
सेट किया जाता है, तोField.required
विशेषता उन्हें वैकल्पिक बनाने के लिए व्यक्तिगत फ़ील्ड के लिएFalse
सेट किया जा सकता है। यदि आवश्यक फ़ील्ड के लिए कोई मूल्य नहीं दिया जाता है, तोincomplete
सत्यापन त्रुटि उठाई जाएगी।एक डिफ़ॉल्ट
incomplete
त्रुटि संदेश कोMultiValueField
उपवर्ग पर परिभाषित किया जा सकता है, या प्रत्येक व्यक्तिगत क्षेत्र पर विभिन्न संदेशों को परिभाषित किया जा सकता है। उदाहरण के लिए:from django.core.validators import RegexValidator class PhoneField(MultiValueField): def __init__(self, **kwargs): # Define one message for all fields. error_messages = { 'incomplete': 'Enter a country calling code and a phone number.', } # Or define a different message for each field. fields = ( CharField( error_messages={'incomplete': 'Enter a country calling code.'}, validators=[ RegexValidator(r'^[0-9]+$', 'Enter a valid country calling code.'), ], ), CharField( error_messages={'incomplete': 'Enter a phone number.'}, validators=[RegexValidator(r'^[0-9]+$', 'Enter a valid phone number.')], ), CharField( validators=[RegexValidator(r'^[0-9]+$', 'Enter a valid extension.')], required=False, ), ) super().__init__( error_messages=error_messages, fields=fields, require_all_fields=False, **kwargs )
-
widget
-
django.forms.MultiWidget
का एक उपवर्ग होना चाहिए। डिफ़ॉल्ट मानTextInput
, जो शायद इस मामले में बहुत उपयोगी नहीं है।
-
compress(data_list)
[source] -
मान्य मानों की एक सूची लेता है और उन मानों का "संपीड़ित" संस्करण लौटाता है - एक मूल्य में। उदाहरण के लिए,
SplitDateTimeField
एक उपवर्ग है जो एक टाइम फ़ील्ड और डेट फ़ील्ड कोSplitDateTimeField
में जोड़ता है।इस विधि को उपवर्गों में लागू किया जाना चाहिए।
-
डिफ़ॉल्ट विजेट:
SplitDateTimeField
-
class SplitDateTimeField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
SplitDateTimeWidget
-
खाली मान:
None
-
सामान्यीकृत करता है: एक पायथन
datetime.datetime
ऑब्जेक्ट। -
पुष्टि करता है कि दिया गया मान
datetime.datetime
एक विशिष्ट स्ट्रिंगटाइम प्रारूप में स्वरूपित स्ट्रिंग है। -
त्रुटि संदेश कुंजियाँ:
required
,invalid
,invalid_date
,invalid_time
दो वैकल्पिक तर्क देता है:
-
input_date_formats
-
किसी स्ट्रिंग को एक मान्य
datetime.date
ऑब्जेक्ट में बदलने का प्रयास करने के लिए उपयोग किए जाने वाले प्रारूपों की एक सूची ।
यदि कोई
input_date_formats
तर्क नहीं दिया गया है, तो डिफ़ॉल्ट इनपुट स्वरूपोंDateField
का उपयोग किया जाता है।-
input_time_formats
-
किसी स्ट्रिंग को एक मान्य
datetime.time
ऑब्जेक्ट में बदलने का प्रयास करने के लिए उपयोग किए जाने वाले प्रारूपों की एक सूची ।
यदि कोई
input_time_formats
तर्क नहीं दिया गया है, तो डिफ़ॉल्ट इनपुट स्वरूपोंTimeField
का उपयोग किया जाता है। -
डिफ़ॉल्ट विजेट:
फील्ड्स जो रिश्तों को संभालती हैं
मॉडलों के बीच संबंधों का प्रतिनिधित्व करने के लिए दो क्षेत्र उपलब्ध हैं:
ModelChoiceField
और
ModelMultipleChoiceField
।
इन दोनों क्षेत्रों के लिए एक एकल
queryset
पैरामीटर की
आवश्यकता होती
है जिसका उपयोग फ़ील्ड के लिए विकल्प बनाने के लिए किया जाता है।
प्रपत्र सत्यापन के बाद, ये फ़ील्ड फ़ॉर्म के शब्दकोश में या तो एक मॉडल ऑब्जेक्ट (
ModelChoiceField
)
के मामले में
या कई मॉडल ऑब्जेक्ट (मामले में
ModelMultipleChoiceField
) को
जगह देंगे
cleaned_data
।
अधिक जटिल उपयोगों के लिए, आप
queryset=None
प्रपत्र फ़ील्ड की घोषणा
करते
समय
निर्दिष्ट कर सकते हैं
और फिर
queryset
फ़ॉर्म की
__init__()
विधि
को
पॉप्युलेट
कर सकते हैं
:
class FooMultipleChoiceForm(forms.Form): foo_select = forms.ModelMultipleChoiceField(queryset=None) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['foo_select'].queryset = ...
ModelChoiceField
-
class ModelChoiceField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
Select
-
खाली मान:
None
- के लिए सामान्यीकृत: एक मॉडल उदाहरण।
- पुष्टि करता है कि दिए गए आईडी क्वेरीसेट में मौजूद हैं।
-
त्रुटि संदेश कुंजियाँ:
required
,invalid_choice
एक एकल मॉडल ऑब्जेक्ट के चयन की अनुमति देता है, जो एक विदेशी कुंजी का प्रतिनिधित्व करने के लिए उपयुक्त है। ध्यान दें कि
ModelChoiceField
प्रविष्टियों की संख्या बढ़ने पर डिफ़ॉल्ट विजेट अव्यवहारिक हो जाता है। आपको 100 से अधिक वस्तुओं के लिए इसका उपयोग करने से बचना चाहिए।एक एकल तर्क की आवश्यकता है:
-
queryset
-
एक
QuerySet
मॉडल ऑब्जेक्ट जिसमें से फ़ील्ड के लिए विकल्प निकाले जाते हैं और जिसका उपयोग उपयोगकर्ता के चयन को मान्य करने के लिए किया जाता है। प्रपत्र का प्रतिपादन होने पर इसका मूल्यांकन किया जाता है।
ModelChoiceField
दो वैकल्पिक तर्क भी लेता है:-
empty_label
-
डिफ़ॉल्ट रूप से
<select>
उपयोग किए जाने वाले विजेटModelChoiceField
में सूची के शीर्ष पर एक खाली विकल्प होगा। आप यह लेबल का पाठ (जो बदल सकते हैं"---------"
के साथ डिफ़ॉल्ट रूप से)empty_label
विशेषता है, या आप की स्थापना करके खाली लेबल पूरी तरह से निष्क्रिय कर सकते हैंempty_label
करने के लिएNone
:# A custom empty label field1 = forms.ModelChoiceField(queryset=..., empty_label="(Nothing)") # No empty label field2 = forms.ModelChoiceField(queryset=..., empty_label=None)
ध्यान दें कि यदि कोई
ModelChoiceField
आवश्यक है और एक डिफ़ॉल्ट प्रारंभिक मूल्य है, तो कोई भी खाली विकल्प नहीं बनाया जाता है (मूल्य के बावजूदempty_label
)।
-
to_field_name
-
फ़ील्ड के विजेट में विकल्पों के मूल्य के रूप में उपयोग करने के लिए फ़ील्ड को निर्दिष्ट करने के लिए इस वैकल्पिक तर्क का उपयोग किया जाता है। सुनिश्चित करें कि यह मॉडल के लिए एक अनूठा क्षेत्र है, अन्यथा चयनित मूल्य एक से अधिक ऑब्जेक्ट से मेल खा सकता है। डिफ़ॉल्ट रूप से यह निर्धारित किया जाता है
None
, जिस स्थिति में प्रत्येक वस्तु की प्राथमिक कुंजी का उपयोग किया जाएगा। उदाहरण के लिए:# No custom to_field_name field1 = forms.ModelChoiceField(queryset=...)
उपज होगी:
<select id="id_field1" name="field1"> <option value="obj1.pk">Object1</option> <option value="obj2.pk">Object2</option> ... </select>
तथा:
# to_field_name provided field2 = forms.ModelChoiceField(queryset=..., to_field_name="name")
उपज होगी:
<select id="id_field2" name="field2"> <option value="obj1.name">Object1</option> <option value="obj2.name">Object2</option> ... </select>
__str__()
क्षेत्र की पसंद में उपयोग के लिए वस्तुओं के स्ट्रिंग प्रतिनिधित्व उत्पन्न करने के लिए मॉडल की विधि को बुलाया जाएगा। अनुकूलित अभ्यावेदन, उपवर्गModelChoiceField
और ओवरराइड प्रदान करने के लिएlabel_from_instance
। इस पद्धति को एक मॉडल ऑब्जेक्ट प्राप्त होगा और इसे प्रतिनिधित्व करने के लिए उपयुक्त स्ट्रिंग वापस करना चाहिए। उदाहरण के लिए:from django.forms import ModelChoiceField class MyModelChoiceField(ModelChoiceField): def label_from_instance(self, obj): return "My Object #%i" % obj.id
-
डिफ़ॉल्ट विजेट:
ModelMultipleChoiceField
-
class ModelMultipleChoiceField(**kwargs)
[source] -
-
डिफ़ॉल्ट विजेट:
SelectMultiple
-
खाली मान: एक खाली
QuerySet
(self.queryset.none ()) -
के लिए सामान्यीकृत:
QuerySet
मॉडल के उदाहरण। - मान्य करता है कि मूल्यों की दी गई सूची में प्रत्येक आईडी क्वेरीसेट में मौजूद है।
-
त्रुटि संदेश कुंजियाँ:
required
,list
,invalid_choice
,invalid_pk_value
invalid_choice
संदेश हो सकती है%(value)s
औरinvalid_pk_value
संदेश हो सकती है%(pk)s
, जो उचित मान से प्रतिस्थापित कर दिया जाएगा।एक या अधिक मॉडल ऑब्जेक्ट के चयन की अनुमति देता है, जो कई-से-कई संबंधों का प्रतिनिधित्व करने के लिए उपयुक्त है। जैसा कि
ModelChoiceField
, आपlabel_from_instance
ऑब्जेक्ट अभ्यावेदन को अनुकूलित करने के लिए उपयोग कर सकते हैं ।एक एकल तर्क की आवश्यकता है:
-
queryset
-
के रूप में ही
ModelChoiceField.queryset
।
एक वैकल्पिक तर्क लेता है:
-
to_field_name
-
के रूप में ही
ModelChoiceField.to_field_name
।
-
डिफ़ॉल्ट विजेट:
कस्टम फ़ील्ड बनाना
यदि अंतर्निहित
Field
कक्षाएं आपकी आवश्यकताओं को पूरा नहीं करती हैं, तो आप आसानी से कस्टम
Field
कक्षाएं
बना सकते हैं
।
ऐसा करने के लिए, बस एक उपवर्ग बनाएँ
django.forms.Field
।
इसका एकमात्र आवश्यकताओं है कि यह एक को लागू कर रहे हैं
clean()
विधि और इसके कि
__init__()
विधि कोर तर्क से ऊपर (उल्लेख किया स्वीकार
required
,
label
,
initial
,
widget
,
help_text
)।
आप यह भी कस्टमाइज़ कर सकते हैं कि किसी क्षेत्र को ओवरराइड करके कैसे पहुँचा जा सकता है
get_bound_field()
।
