Django поле множественного выбора не сохраняется
У меня есть простая форма, в которой есть флажок для пользователей, чтобы выбрать некоторые варианты. поэтому я создал модель под названием InterestedField и подключил мою основную модель к ней с помощью метода manytomany. вот моя основная модель:
class PersonalInfo(models.Model):
id = models.AutoField(primary_key=True)
isCompleted = models.BooleanField(default=False)
interested_field = models.ManyToManyField(InterestedField)
и вот само поле InterestedField:
class InterestedField(models.Model):
id = models.AutoField(primary_key=True)
slug = models.CharField(max_length=16, default='default')
title = CharField(max_length=32)
достаточно просто. затем, я создал эту форму следующим образом:
class InterestedFieldChoiceForm(forms.Form):
InterestedFieldChoice = forms.ChoiceField()
и вот мои представления и код html шаблона:
class PersonalView(View):
template_name = 'reg/personal.html'
def get(self, request, *args, **kwargs):
context = {}
interested_field = InterestedField.objects.all()
context['interested_field'] = interested_field
return render(request, self.template_name, context=context)
def post(self, request, *args, **kwargs):
user = request.user
form = InterestedFieldChoiceForm()
if form.is_valid():
interested_field = request.POST.getlist('InterestedFieldChoice')
user.personalInfo.interested_field = interested_field[0]
user.personalInfo.save()
user.personalInfo.isCompleted = True
user.personalInfo.save()
user.save()
return render(request, 'reg/done.html', context={'info_type': 'اطلاعات فردی'})
мой html:
<form id="personal-form" method="POST" action="{% url 'personal' %}" autocomplete="off" class="ant-form ant-form-horizontal">
<div class="ant-descriptions">
<div class="ant-descriptions-view">
{% for field in interested_field %}
<label class="ant-col ant-col-md-6 ant-col-xs-8 ant-checkbox-wrapper {% if field in user.personalInfo.interested_field.all %} ant-checkbox-wrapper-checked {%endif%}" style="margin-left: 0; float: right;">
<span class="ant-checkbox {% if field in user.personalInfo.interested_field.all %} ant-checkbox-checked {%endif%}">
<input type="checkbox" name="InterestedFieldChoice" class="ant-checkbox-input" value="{{field.id}}">
<span class="ant-checkbox-inner"></span>
</span>
<span>{{field.title}}</span>
</label>
{% endfor %}
</div>
</div>
</form>
все работает отлично, за исключением того, что когда пользователи хотят заполнить форму и отправить (забыл поставить кнопку отправки здесь, но она существует!), она не сохраняется. однако я могу проверить это со страницы администратора и все работает правильно. что я делаю неправильно здесь. спасибо за помощь!