表单内容:
<form action="" method="POST">
<input type="checkbox" value="1" name="check_box_list"/>1
<input type="checkbox" value="2" name="check_box_list"/>2
<input type="checkbox" value="3" name="check_box_list"/>3
<input type="submit" value="提交"/>
</form>
后台逻辑代码:Python code
def xxx(request):
# xxx 是方法的名字
check_box_list = request.POST.getlist('check_box_list')
注:页面选中的checkbox的value都在这check_box_list里面。
checkbox传值如:
<input name="checkbox" type="checkbox" value="abc" />
如果选中,传过去的值是abc;如果没选中则值是空
如果是一个组如:
<input name="checkbox" type="checkbox" value="a" />
<input name="checkbox" type="checkbox" value="b" />
<input name="checkbox" type="checkbox" value="c" />
传过去的值是 a,b,c
但现在的问题是:在django获取值并保存到数据库时,只保存了一个字段;如在上个例子中,就只保存了一个c,a和b都没了。
如何得到django中form表单里的复选框(多选框)的值( MultipleChoiceField )
直接写代码吧
CHECKBOX_CHOICES = (
('Value1','Value1'),
('Value2','Value2'),
)
class EditProfileForm(ModelForm):
interest = forms.MultipleChoiceField(required=False,
widget=CheckboxSelectMultiple(),
choices=CHECKBOX_CHOICES,)
def save(self, *args, **kwargs):
u = self.instance.user
u.interest = self.cleaned_data['interest']
u.save()
profile = super(EditProfileForm, self).save(*args,**kwargs)
return profile
怎样得到如下数据呢
[u'value1', u'value2']
实现
u.interest = u','.join(self.cleaned_data['interest'])