django

2009-07-15 9 views
9

में फॉर्म सत्यापन में मैंने अभी django का उपयोग करना शुरू कर दिया है। मैं रूपों में आया और मुझे यह जानने की जरूरत है कि फ़ॉर्म को प्रमाणित करने का बेहतर तरीका कौन सा है। क्या यह django रूपों का उपयोग करेगा या क्या हमें जावास्क्रिप्ट या कुछ क्लाइंट साइड स्क्रिप्टिंग भाषा का उपयोग करना चाहिए?django

+3

आपको 'django-forms' जैसे उपटैग की तुलना में टैग 'django' के साथ बहुत अधिक दर्शक मिलेंगे। हमेशा आपके द्वारा उपयोग किए जा रहे मुख्य प्लेटफ़ॉर्म/भाषा (जैसे '.net',' java', 'django', आदि) के लिए कम से कम एक टैग शामिल करने का प्रयास करें, खासकर जब आपने पांच टैग सीमा को नहीं मारा है। – Zifre

उत्तर

16

आपको हमेशा सर्वर के पक्ष में अपना फॉर्म मान्य करना चाहिए, क्लाइंट साइड सत्यापन केवल उपयोगकर्ता के लिए सुविधा है।

कहा जा रहा है कि, Django रूपों में एक परिवर्तनीय रूप है। अक्षर जो दिखाता है कि कुछ फॉर्म फ़ील्ड गलत हैं या नहीं।

{{form.name_of_field.errors}} आपको गलत तरीके से भरने वाले प्रत्येक फ़ील्ड की प्रत्येक व्यक्तिगत त्रुटि दे सकता है। अधिक देखें:

http://docs.djangoproject.com/en/dev/topics/forms/

+4

एक बात जो दस्तावेज़ * उल्लेख नहीं करते हैं, वह {{form.non_field_errors}} का अस्तित्व है जब आप * बस * पूरी तरह से फॉर्म पर लागू त्रुटियों पर प्राप्त करना चाहते हैं। –

+0

हां, मुझे लगता है कि दस्तावेज़ बहुत सारी चीजों पर चूक जाते हैं, या वे बस विस्तार से नहीं जाते हैं। मुझे उम्मीद है कि ढांचे के रूप में दस्तावेज़ भी विकसित होते हैं। – AlbertoPL

+0

अल्बर्टो ने जो कहा, उसे दोहराने के लिए: क्लाइंट-साइड सत्यापन मान्य नहीं है। कोई भी पोस्ट तैयार कर सकता है या अनुरोध प्राप्त कर सकता है। क्लाइंट-साइड सत्यापन से प्राप्त एकमात्र वास्तविक लाभ उपयोगकर्ता के लिए "वेब 2.0 AJAXy महसूस" है, लेकिन यह सत्यापन नहीं है - जो सर्वर-साइड होता है। – ShawnMilo

5

एक प्लगेबल Django एप्लिकेशन (django-ajax-forms) कि जावास्क्रिप्ट के माध्यम से ग्राहक पक्ष पर रूपों को मान्य करने में नहीं है। लेकिन जैसा कि अल्बर्टोपीएल कहते हैं, क्लाइंट साइड सत्यापन केवल उपयोगिता माप के रूप में उपयोग करें (उदा। उपयोगकर्ता को यह बताएं कि उसका वांछित उपयोगकर्ता नाम पंजीकरण पृष्ठ को पुनः लोड किए बिना पहले ही लिया गया है)। क्लाइंट साइड सत्यापन को कम करने के सभी प्रकार हैं, ज्यादातर मामलों में जावास्क्रिप्ट को निष्क्रिय करने के रूप में सरल।

आम तौर पर बोलते हुए: सत्यापित होने तक बाहर से आने वाले सभी डेटा को दोषपूर्ण के रूप में प्रस्तुत करना मानें।

4

बस django-floppyforms में आया, जो डिफ़ॉल्ट रूप से क्लाइंटसाइड सत्यापन करता है। वे एचटीएमएल 5 का उपयोग करते हैं जो डिफ़ॉल्ट रूप से क्लाइंटसाइड सत्यापन का समर्थन करता है। सुनिश्चित नहीं है कि वे जावास्क्रिप्ट का भी उपयोग करते हैं, हालांकि ब्राउज़र HTML5 का समर्थन नहीं करता है। अभी तक यह कोशिश नहीं की है। django-floppyforms

लिंक: Documentation और Github

0

आप ऐसा करने की आवश्यकता होगी जे एस है। This app सही डेटा के साथ फॉर्म टैग करने के लिए parsley.js के साथ फ़ॉर्म को एकीकृत करता है- * विशेष रूप से गुण।

2

यदि आप बूटस्ट्रैप का उपयोग कर रहे हैं तो आप फॉर्म फ़ील्ड में आवश्यक विशेषता जोड़ सकते हैं। उदाहरण के लिए अगर वहाँ programe क्षेत्र तो आप इसे पसंद मान्य कर सकते हैं:

forms.py में:

programme = forms.ChoiceField(course_choices,required=True, widget=forms.Select(attrs={'required':'required'})) 

ध्यान दें: यह लिंक करने के लिए है कि फार्म के अपने .html पेज में फाइल bootstrap की आवश्यकता है।