Изменение ModelChoiceField на ModelMultipleChoiceField - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть CreateView CBV, где я переопределяю get_form для установки типа поля:

def get_form(self, form_class=None):
    form = super(EventMembershipCreate, self).get_form(form_class)
    form.fields['person'] = forms.ModelChoiceField(
        queryset=Person.objects.all(), to_field_name='email'
    )
    return form

Это прекрасно работает, когда поле имеет значение ModelChoiceField, однако я хочу разрешить пользователям создавать несколько объекты, которые я буду захватывать и get_or_create в def post():.

. Для этого я изменяю тип поля на поле с множественным выбором, установленное как form.fields['person'] = forms.ModelMultipleChoiceField.

Однако, даже когда отправляя только одно значение в форме, я получаю следующую ошибку:

ValueError в / lists / event / 1 / add / Невозможно назначить "QuerySet Person: email@domain.com": "EventMembership.person" должен быть экземпляром "Person".

Ввод электронной почты определенно является экземпляром Person, поэтому я не уверен, что вызывает эту ошибку.

Почему это get_form переопределяет работать с ModelChoiceField а не ModelMultipleChoiceField?

...