Django CheckboxSelectMultipleで、複数の選択をリストとして、またはそれが不可能ならば、後で加工しやすい形(カンマ区切りの文字列等)でモデルに保存したいと考えています。
下記のコードを試し、複数のデータをチェックしても、1つのデータ("バナナ"だけ)しか入らないです。
どのようにしたら、複数選択した全てをリストとして、またはカンマ区切りの文字列等、後から加工しやすい形でモデルに保存できるでしょうか。
Django
1models.py 2 3class Food(models.Model): 4 class Meta: 5 db_table = 'Food' 6 7 food = models.CharField('食べ物', blank=True, max_length=100) 8
Django
1 2forms.py 3 4class FoodForm(forms.Form): 5 6 FOOD_CHOICES = [("りんご","りんご"),("バナナ","バナナ"),("シャケ","シャケ")] 7 8 food = forms.ChoiceField( 9 label='食べ物', 10 widget=forms.CheckboxSelectMultiple, 11 choices=FOOD_CHOICES, 12 required=True, 13 ) 14 15class FoodRecordForm(forms.ModelForm): 16 17 class Meta: 18 model = Food 19 fields = ['food'] 20 21
HTML
1<form action="{% url 'logicsettei' %}" method="post"> 2 {% csrf_token %} 3 {{form}} 4 5 <tr><td></td><td><input type="submit" value="登録する" id="test"></td></tr> 6</form>
django
1 2views.py 3 4def foodsettei(request): 5 if(request.method == 'POST'): 6 form = FoodForm() 7 obj = Food() 8 friend = FoodRecordForm(request.POST, instance=obj) 9 friend.save() 10 # return redirect(to='/hello/food') 11 12 else:' 13 form = FoodForm() 14 friend = '' 15 16 params = { 17 'form':form 18 } 19 20 return render(request,'hello/food.html',params) 21 22
環境
Python 3.6.5
Django'2.0.2'
macbook
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/31 13:37
2018/11/01 10:12
2018/11/01 12:46
2018/11/01 15:43
2018/11/02 10:01
2018/11/02 12:20