所以我使用的是Django 1.3表单向导https://github.com/stephrdev/django-formwizard,我遇到了类型选择字段的问题,该字段返回u'False'
而不仅仅是False (boolean)
。
我该怎么办?
ONE_OR_MULTIPLE_CHOICES = (
(False, 'One'),
(True, 'Multiple')
)
class PublicJobCreateForm(forms.Form):
multiple = forms.TypedChoiceField(choices=ONE_OR_MULTIPLE_CHOICES, widget=forms.RadioSelect)
我这样称呼:
def done(self, form_list, **kwargs):
create_form_data = form_list[0].cleaned_data
if create_form_data['multiple']:
print "something"
任何想法?
答案 0 :(得分:1)
您尚未为TypedChoiceField
指定coerce
。
ONE_OR_MULTIPLE_CHOICES = (
(0, 'One'),
(1, 'Multiple')
)
multiple = forms.TypedChoiceField(choices=ONE_OR_MULTIPLE_CHOICES,
widget=forms.RadioSelect,
coerce=int)
如果您想使用False
和True
代替0
和1
,请注意使用coerce=bool
不起作用。这是因为字符串'False'
被强制转换为True
。 This answer建议使用自定义lambda函数:
coerce = lambda x: x == 'True'