Django - Передача мультишокового поля в словарь POST - PullRequest
0 голосов
/ 08 июня 2018

У меня есть queryset, сгенерированный в моем forms.py файле, который передается в мой template.Результатом шаблона является поле с несколькими выборками, основанное на наборе запросов.Представление веб-браузера правильное - оно отображает набор запросов в виде выпадающего списка, из которого я могу сделать выбор.

Вот код template:

<tr><td>{{ form.jury_name | placeholder:'Jury Name' }}</td></tr>
<tr><td><select>
    {% for item in form.parent_jury.field.queryset %}
        <option name="parent_jury" value="{{ item }}">{{ item }}</option>
    {% endfor %}
</select></td></tr>

Этовсе содержится в table.

Когда отправляется form (method = "POST"), словарь POST содержит все правильные значения для ключей, кроме ключа parent_jury, который отправляет значение''.

Я работал над несколькими SO-решениями на стороне views.py, но они не меняют тот факт, что в информации, доступной для clean(), отсутствует значение поля выбора для 'parent_jury'.Как получить выбранную опцию из списка, чтобы прикрепить ее к клавише 'parent_jury'?

1 Ответ

0 голосов
/ 08 июня 2018

Я думаю, что ваш отрендеренный HTML не такой, каким он должен быть: name="..." должен быть частью тега <select>, не <option>s:

<tr><td>{{ form.jury_name | placeholder:'Jury Name' }}</td></tr>
<tr><td><select<b> name="parent_jury"</b>>
    {% for item in form.parent_jury.field.queryset %}
        <!-- remove the name here -->
        <option value="{{ item }}">{{ item }}</option>
    {% endfor %}
</select></td></tr>

(конечно, вы можете удалить часть <!-- comment --> (это только для того, чтобы привлечь внимание к этому изменению).

...