I have a Django application and want to display multiple choice checkboxes in a user's profile. They will then be able to select multiple items.
This is a simplified version of my models.py:
from profiles.choices import SAMPLE_CHOICES
class Profile(models.Model):
user = models.ForeignKey(User, unique=True, verbose_name_('user'))
choice_field = models.CharField(_('Some choices...'), choices=SAMPLE_CHOICES, max_length=50)
And my form class:
class ProfileForm(forms.ModelForm):
choice_field = forms.MultipleChoiceField(choices=SAMPLE_CHOICES, widget=forms.CheckboxSelectMultiple)
class Meta:
model = Profile
And my views.py:
if request.method == "POST":
profile_form = form_class(request.POST, instance=profile)
if profile_form.is_valid():
...
profile.save()
return render_to_response(template_name, {"profile_form": profile_form,}, context_instance=RequestContext(request))
I can see that the POST is only sending one value:
choice_field u'choice_three'
And the local vars params is sending a list:
[u'choice_one', u'choice_two', u'choice_three']
All of the form fields display correct, but when I submit a POST, I get an error
Error binding parameter 7 - probably unsupported type.
Do I need to process the multiple choice field further in the view? Is the model field type correct? Any help or references would be greatly appreciated.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…