Создание поля флажка с отношением ManyToMany

Я пытаюсь добавить поле interested_fields в мою модель personalInfo, из которого пользователи могут выбирать, а сами варианты приходят из объектов другой модели с помощью отношения ManyToMany между двумя моделями. Вот мои коды models.py (я упростил свою модель personalInfo, удалив некоторые другие поля, такие как имя, возраст, ..., чтобы сделать ее более читабельной для вас):

class Field(models.Model):
    id = models.AutoField(primary_key=True)
    slug = models.CharField(max_length=16, default='default')
    title = CharField(max_length=32)


class PersonalInfo(models.Model):
    id = models.AutoField(primary_key=True)
    isCompleted = models.BooleanField(default=False)
    interested_fields = models.ManyToManyField(Field, blank=True)

Затем я создал ModelForm следующим образом:

class InterestedFieldsForm(forms.ModelForm):
    interested_fields = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=Field.objects.all(), required=False)

    class Meta:
        model = PersonalInfo
        fields = ['interested_fields']

и создал функции get и post внутри моих представлений следующим образом:

class PersonalView(View):
    template_name = 'reg/personal.html'

    def get(self, request, *args, **kwargs):
        context = {}
        context['fields'] = Field.objects.all()
        return render(request, self.template_name, context=context)

    def post(self, request, *args, **kwargs):
        user = request.user
        if request.method == 'POST':
            form = InterestedFieldsForm(request.POST)
            if form.is_valid():
                profile = form.save(commit=False)
                profile.user = request.user
                profile.save()
        else:
            form = InterestedFieldsForm()

        return render(request, 'reg/done.html', context={'form': form})

и наконец в шаблоне, внутри формы я добавил этот цикл for:

{% for field in fields %}
                                <label class="containerq ant-col ant-col-md-6 ant-col-xs-8" >
                                    <span>
                                        <input type="checkbox" name="interested_fields" {% if field.slug in user.personalInfo.interested_fields %} checked="checked" {% endif %} value="{{field.title}}">
                                        <span style="margin-left:7px" class="checkmark"></span>
                                    </span>
                                    <span>{{field.title}}</span>
                                </label>
                            {% endfor %}

когда я отправляю форму, она выдает мне эту ошибку: cannot unpack non-iterable Field object Я новичок в django, поэтому я действительно не знаю, что я делаю неправильно. спасибо за ваши ответы

Вернуться на верх