यह मैं कैसे के बारे में, के रूप में एक बूलियन मॉडल क्षेत्र प्रदर्शित करने के लिए चला गया है के रूप में रेडियो बटन हाँ और नहीं।डिफ़ॉल्ट चेकबॉक्स रेडियो बटन के बजाय के रूप में एक Django रूप में एक बूलियन मॉडल क्षेत्र प्रदर्शित करें
choices = ((1,'Yes'),
(0,'No'),
)
class EmailEditForm(forms.ModelForm):
#Display radio buttons instead of checkboxes
to_send_form = forms.ChoiceField(choices=choices,widget=forms.RadioSelect)
class Meta:
model = EmailParticipant
fields = ('to_send_email','to_send_form')
def clean(self):
"""
A workaround as the cleaned_data seems to contain u'1' and u'0'. There may be a better way.
"""
self.cleaned_data['to_send_form'] = int(self.cleaned_data['to_send_form'])
return self.cleaned_data
जैसा कि आप उपरोक्त कोड में देख सकते हैं, मुझे एक साफ विधि की आवश्यकता है जो इनपुट स्ट्रिंग को एक पूर्णांक में परिवर्तित कर दे, जो अनावश्यक हो सकती है।
क्या ऐसा करने के लिए एक बेहतर और/या djangoic तरीका है। यदि हां, तो कैसे?
और नहीं, BooleanField
का उपयोग करके बहुत अधिक समस्याएं पैदा होती हैं। इसका उपयोग करना मेरे लिए स्पष्ट प्रतीत होता था; लेकिन यह नहीं है। ऐसा क्यों है।
ध्यान दें कि विकल्प जोड़े का एक क्रम है (http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.ChoiceField देखें)। बिल्कुल यकीन नहीं है कि जोड़ों में क्या है, वैसे। – dfrankow
मैंने widgets.py में देखा, विकल्प फ़ॉर्म के tuples की एक सूची है (choice_value, choice_label)। – dfrankow