2015-06-10 4 views
0

Я создаю приложение в django, и для этого у меня есть форма, где поле «Человек» является полем ForeignKey. Поэтому, когда я запускаю приложение, он выглядит правильно, показывая мне поле со списком, которое позволяет мне выбрать объект «Я», который я хочу. Но проблема в том, что я пытаюсь поймать информацию в представлении.Как я могу получить значение объекта combobox в представлении django?

я отправить данные с помощью метода POST, так, когда я пытаюсь получить значение выбранного объекта «лицо» в представлении я делаю следующее:

selected_person = request.POST['person'] 

(Person это имя поля)

Я был удивлен, когда я проверил, что значение переменной 'selected_person' является числом (конкретно, номером выбранного индекса элемента в выпадающем списке).

Мой вопрос: КАК Я МОГУ ПОЛУЧИТЬ ОБЪЕКТУ ЗНАЧЕНИЯ ИЗБРАННОГО ЭЛЕМЕТА В КОМББОКСЕ?

Чем вы так много!

+0

Я думаю, вы делаете что-то вроде '', если это так, в представлении вы можете использовать это значение для запроса этого лица 'Person.objects .get (pk = selected_person) ' – Gocht

ответ

0

Нет, это первичный ключ объекта Person в базе данных. Таким образом, вы можете получить его через Person.objects.get(pk=selected_person).

Но на самом деле вы должны использовать форму Django, которая затем даст вам объект Person через form.cleaned_data['person'].

Также обратите внимание, что это поле выбора или выпадающее меню, а не поле со списком; combobox - это виджет рабочего стола, в котором есть раскрывающееся меню и поле редактирования.

+0

Okey! Благодаря! Это было очень полезно для меня! :) – jartymcfly

+0

Я, наконец, понял! Еще раз спасибо! – jartymcfly

0

Конкретно проблема заключалась в том, что я не определил значение «primary_key» в модели, поэтому число, которое выдает раскрывающийся список, является основным ключом по умолчанию, который django привязан к модели. Если я определяю настраиваемый первичный ключ для модели, выбор элемента в раскрывающемся списке дает мне первичный ключ.

Смежные вопросы