У меня есть 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
?