У меня есть приложение Django, и я хочу отобразить несколько вариантов в профиле пользователя. Затем они смогут выбрать несколько предметов.
Это упрощенная версия моих моделей.
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)
И мой класс формы:
class ProfileForm(forms.ModelForm):
choice_field = forms.MultipleChoiceField(choices=SAMPLE_CHOICES, widget=forms.CheckboxSelectMultiple)
class Meta:
model = Profile
И мои 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))
Я вижу, что POST отправляет только одно значение:
choice_field u'choice_three'
И местный vars params отправляет список:
[u'choice_one', u'choice_two', u'choice_three']
Все поля формы отображаются правильно, но когда я отправляю POST, я получаю сообщение об ошибке
Ошибка привязки параметра 7 - возможно, неподдерживаемый тип.
Нужно ли обрабатывать поле множественного выбора дальше в представлении? Правильный ли тип поля модели? Любая помощь или ссылки будут с благодарностью.