переменная формы django - PullRequest
1 голос
/ 11 февраля 2009

Я потратил слишком много времени на эту проблему и начинаю думать, что она не может быть сделано в Джанго. Я вытащил список названий патогенов из postgres базы данных в раскрывающемся списке. Пользователь выбирает возбудителя, для которого требуется идентификатор чтобы быть переданным обратно через Django в базу данных для дальнейшего поиска больше данных. Пожалуйста, смотрите

http://dpaste.com/119358/ для выпадающего кода.

Проблема в том, что оператор select id = находится над точкой, где форма получает идентификатор патологии. Заявления Джанго должны быть размещены на этом точка или раскрывающийся список не работает. Кто-нибудь написал что-то подобное и нашли решение?

Макс

Ответы [ 2 ]

5 голосов
/ 11 февраля 2009

Идентификатор тега select в вашем HTML не обязательно должен знать ваши записи патологии. Ваш код правильный, за исключением отсутствия закрывающего тега select.

Ваше представление Django, сопоставленное с URL-адресом / pathology / action, должно обрабатывать метод POST и извлекать идентификатор патологии из запроса следующим образом:

pathology_id = request.POST['pathology']

Теперь вы можете искать этот объект в своей базе данных по его идентификатору и генерировать новую страницу / форму или любую бизнес-логику, которая вам нужна.

Ключ словаря, который вам нужно использовать в вызове request.POST ['...'], основан на имени, которое вы дали вашему элементу select, в данном случае 'pathology'.

0 голосов
/ 12 февраля 2009

Библиотека обработки форм в Django - отличный инструмент для управления вашими HTML-формами. Он извлечет параметры из базы данных, сгенерирует HTML-код для выпадающего списка и сохранит выбор в базе данных для вас с минимальным кодом.

...