CharFieldにチェックボックスのセットと他の[指定してください]オプションの結果を入れる必要があります(値は 'option-a 、他の 'フォームの状態の下に)。フォームは基本的にのように見えることができます:私はなMultipleChoiceFieldのサブクラス実装することにより、そこに道のほとんどを得ることができた複数(チェックボックス)を実装するDjangoで+ "Other"ウィジェットを選択
[x] option a
[ ] option b
[x] other
If you selected "other", please specify. [__________]
:私のフォームクラスで
class CommaStringMultipleChoiceField(MultipleChoiceField):
def to_python(self, value):
return [val.rstrip().lstrip() for val in value.split(',')]
def clean(self, value):
return ",".join([val.rstrip().lstrip() for val in value])
を、私は私にそのフィールドを割り当てますフォームフィールドは:
TYPE_CHOICES = [
(u'option-a',u"Option A"),
(u'option-b',u"Option B"),
(u'other', u"Other"),
]
type = CommaStringMultipleChoiceField(
choices=TYPE_CHOICES,
widget=CheckboxSelectMultiple
)
これは、適切にフォームをレンダリングし、私のカスタムクリーン()メソッドが呼び出されたが、私は、フォームを保存するとき、私は、検証エラーが表示されます。
Value u'education,other' is not a valid choice.
私はカスタムバリデーターを追加して遊んだことがありますが、これまでのところ違いはありません。何が欠けていますか?
類似のものを修正するのに役立つ記事があります。この記事の主な変更点は、別のウィジェットをサブクラス化することです。 [記事。](http://garmoncheg.blogspot.com/2014/05/implementing-multiple-radio-select.html) – garmoncheg