Как получить значения полей выбора, а не ключ из формы?Доступ к значениям выбора MultipleChoiceField
У меня есть форма, где я позволяю пользователю выбирать электронные письма для компании. Например, у меня есть форма, как это (эта причина для модели формы является то, что она находится внутри formset - но это сейчас не важно):
class Contacts(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(Contacts, self).__init__(*args, **kwargs)
self.company = kwargs['initial']['company']
self.fields['emails'].choices = self.company.emails
# This produces stuff like:
# [(1, '[email protected]'), ...]
emails = forms.MultipleChoiceField(required=False)
class Meta:
model = Company
, и я хочу, чтобы получить список всех выбранных сообщений электронной почты в вид, что-то вроде этого:
form = ContactsForm(request.POST)
if form.is_valid():
form.cleaned_data['emails'][0] # produces 1 and not email
Там нет get_emails_display()
вида метода, как и в модели, например. Кроме того, предложение form.fields['emails'].choices
не работает, поскольку оно дает ВСЕ варианты, тогда как мне нужно что-то вроде form.fields['emails'].selected_choices
?
Любые идеи, или дайте мне знать, если это неясно.
Прохладный, это на самом деле form.fields ['email']. Пожалуйста, исправьте, поэтому я могу принять :-) – drozzy
Примечание выше все еще возвращает список кортежей: [(1, '[email protected]'), (2, '[email protected]')] – drozzy
whoops, my Плохо. Исправлена. :) –