така че аз съм с 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"
някакви идеи?
Отговори:
1 за отговор № 1Не сте посочили coerce
за вашия TypedChoiceField
.
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
. Този отговор предлага да използвате обичайна ламбда функция:
coerce = lambda x: x == "True"