BooleanField

26 views
Skip to first unread message

takao

unread,
Jul 30, 2009, 10:27:03 PM7/30/09
to django-ja
はじめまして、馬郡と申します。

最近python/django1.1を触り始めたのですが、django.forms.BooleanFieldのclean()メソッドの動きが納
得いかないです。

class BooleanField(Field):
(中略)
def clean(self, value):
if value in ('False', '0'):
value = False
else:
value = bool(value)
super(BooleanField, self).clean(value)
if not value and self.required:
raise ValidationError(self.error_messages['required'])
return value

これだと、self.required == True 且つ value in ('False', '0') の場合に、
ValidationErrorが発生します。
仕方なくクラスを継承して使っていますが、formsの使い方がまずいのでしょうか?

Shuji Watanabe

unread,
Jul 30, 2009, 10:39:01 PM7/30/09
to djan...@googlegroups.com
渡辺です。

Validates that the value is True (e.g. the check box is checked) if
the field has required=True.
http://docs.djangoproject.com/en/dev/ref/forms/fields/#booleanfield

Booleanで必須という事は、いわゆる「以上のことに同意します」系のチェックボックス用でしょう。
チェックしていないのですからValidationErrorで妥当です。

2009/07/31 11:27 に takao<taka...@gmail.com> さんは書きました:
--
================================
Shuji Watanabe (skypeId: shuji.w6e)
Blog:
http://d.hatena.ne.jp/shuji_w6e/
Labo:
http://www.deathmarch.jp/
Community:
http://www.sapporo-java.org/

takao

unread,
Jul 31, 2009, 5:09:10 AM7/31/09
to django-ja
まごおりです。

ありがとうございます。
おっしゃるとおり、そういう仕様、ということになってますね。お騒がせしました。

On 7月31日, 午前11:39, Shuji Watanabe <shuji....@gmail.com> wrote:
> 渡辺です。
>
> Validates that the value is True (e.g. the check box is checked) if
> the field has required=True.http://docs.djangoproject.com/en/dev/ref/forms/fields/#booleanfield
>
> Booleanで必須という事は、いわゆる「以上のことに同意します」系のチェックボックス用でしょう。
> チェックしていないのですからValidationErrorで妥当です。
>
> 2009/07/31 11:27 に takao<takao...@gmail.com> さんは書きました:
Reply all
Reply to author
Forward
0 new messages