Django

2011-10-19 19 views
14

में चेकबॉक्स इनपुट सत्यापन & उपयोग के लिए मैं अपने पंजीकरण क्षेत्र में एक चेकबॉक्स जोड़ना चाहता हूं। इसे सत्यापित करने के लिए मैं एक साफ विधि कैसे लिख सकता हूं।Django

मैं एक साफ विधि जहां मुझे यकीन है कि मैं चेकबॉक्स मूल्य सही ढंग से पकड़ने कर रहा हूँ होना चाहता हूँ लिखा है:

def clean_terms(self): 
     if self.cleaned_data["terms"] == u'on': 
      raise forms.ValidationError(
       "You have to accept terms&conditions to complete registration" 
      ) 

परिणामस्वरूप जब मैं अपने पंजीकरण फार्म को भरने और इसे पोस्ट के रूप में, यह मुझे इस मान्यता देता है त्रुटि:

शर्तें & शर्तें: वैध विकल्प का चयन करें। उपलब्ध विकल्पों में से एक नहीं है।

तो मैं कैसे समझ सकता हूं कि चेकबॉक्स चेक किया गया है और & शब्द का सही ढंग से कार्यान्वयन कैसे करें चेकबॉक्स का उपयोग करें?

मेरे चेकबॉक्स क्षेत्र:

terms = forms.ChoiceField(
    label="Terms&Conditions", 
    widget=forms.CheckboxInput() 
) 
+0

शायद आपको हमें दिखाना चाहिए कि आप पहले स्थान पर चेकबॉक्स को कैसे परिभाषित कर रहे हैं? –

उत्तर

21

एक भी चेकबॉक्स के लिए एक ChoiceField प्रयोग न करें। BooleanField का उपयोग करें।

terms = forms.BooleanField(
    error_messages={'required': 'You must accept the terms and conditions'}, 
    label="Terms&Conditions" 
) 

आपको clean_ विधि की भी आवश्यकता नहीं है।