У меня есть форма с возможностью выбора нескольких флажков, однако, когда я пытаюсь извлечь ключ из словаря в почтовом запросе. Он предоставляет только первое значение массива (может не быть массивом). Я хотел бы получить все точки данных.Как получить все данные из флажков в запросе (django)?
Модели
class CreateJournalistForm(forms.Form):
vertical_choices = (('General', 'General'), ('News', 'News'), ('Life', 'Life'), ('Money', 'Money'), ('Sports', 'Sports'), ('Entertainment', 'Entertainment'), ('Dating', 'Dating'), ('Music', 'Music'), ('Humor', 'Humor'))
name = forms.CharField(max_length=40, required=False)
verticals = forms.MultipleChoiceField(required=True, widget=forms.CheckboxSelectMultiple, choices=vertical_choices)
location = forms.CharField(max_length=40)
Посмотреть
def journalist(request):
if request.method == "POST":
form = CreateJournalistForm(request.POST)
pdb.set_trace()
if not form.data['name']:
if form.is_valid():
form.save()
return HttpResponse("Thank you for applying. We hope to get back to you soon")
else:
return HttpResponse("Sorry there was an error processing your application. Note: All fields on the application are required.")
else:
return HttpResponse("Thank you for applying. We hope to get back to you soon")
elif request.method == "GET":
form = CreateJournalistForm()
return render_to_response('journalist_application.html', {'form': form}, context_instance=RequestContext(request))
В монтировки запроса отладчик пост обеспечит:
<QueryDict: {u'sample': [u'sdfsdf'], u'first_name': [u'sdfsd'], u'last_name': [u'sdfsf'], u'name': [u''], u'dob': [u'1/22/13'], u'twitter': [u'sdfsdf'], u'ideas': [u'sdfsdf'], u'contribution': [u'sdf'], u'verticals': [u'General', u'News', u'Life', u'Money', u'Sports'], u'google': [u'sdfsdf'], u'location': [u'sdfsdf']}
Это обеспечивается request.POST в отладчике. Теперь, если я предоставил ключевой запрос.POST ['verticals'], он вернет только один объект в массив. u'Sports '
это работает! как я могу использовать форму для получения данных? – Dap
Вы должны использовать 'form.cleaned_data' для доступа к данным после проверки формы. Все это объясняется в документах форм, так же как и правильный шаблон для отображения ошибок пользователю. –