2017-01-09 11 views
0

models.pyCheckboxSelectMultiple検証エラー

class MyModel(models.Model): 
     OPTION_CHOICES = (('a','a'),('b','b')) 
     option = models.CharField(max_length=1, choices=OPTION_CHOICES) 

forms.py

class MyForm(ModelForm): 
     class Meta: 
      model=MyModel 
      fields=['option'] 
      widgets = {'option':CheckboxSelectMultiple(),} 

私がフォームを送信しようとすると、私は検証エラーを持って、それを提出することはできません。私のチャンスがCheckboxSelectMultipleからRadioSelectになるとうまくいきます。だから私はこれを使用してこれを修正することができますcheckboxSelectMultiple

+0

エラーとは何ですか? 'a'と 'b'の両方を選択すると、オプションフィールドに何が保存されると思いますか?フィールドは複数のオプションを受け入れる必要があります。フィールド名をオプションからopntion * s *に変更し、多対多フィールドにすることで、複数のオブジェクトをストローク(関係)することができます。 – allcaps

+0

OR何かビット単位で行うhttps://github.com/disqus/django-bitfield – allcaps

+0

@allcapsエラーには、**有効な選択肢を選択してください。 [u'a ']は利用可能な選択肢の一つではありません** –

答えて

0
option = models.CharField(max_length=1, choices=OPTION_CHOICES) 

ただ1つのcharを受け入れます。

[u'a'] 

もちろんこれはエラーになります:

Select a valid choice. [u'a'] is not one of the available choices. 

再び:'a''b'は、文字列および有効な選択肢は、[u'a']複数選択ウィジェットでフォームを提出することにより、あなたはリストを格納しようは有効ではないリストです。

リスト(または複数のリレーション)を保存するには、他のフィールドタイプを選択する必要があります。どのフィールドタイプがプロジェクト要件に正確に依存しますか。あなたに何を使うべきかアドバイスを与えるのに十分な情報がありません。