Как получить значение флажка в Django? - PullRequest
3 голосов
/ 17 декабря 2010
<tr name="item">
        <td><input type="checkbox" ></td>
        <td>>{{ foo }}</td>
        <td> {{ bar }} </td>


</tr>

Теперь я хочу, чтобы в представлениях django request.POST.getlist('item') возвращало значение, например, foo и bar.Но возвращается ноль.

Ответы [ 4 ]

6 голосов
/ 17 декабря 2010

Флажки работают немного иначе, чем другие входные данные формы, поэтому, если вы изучите сообщение, отправленное из формы, содержащей флажок, есть две возможности ...

<input type="checkbox" name="cb1" />

Если флажок установлен, ваш набор запросов будет выглядеть так:

queryset = {'cb1': 'on'}

Если не проверено:

queryset = {}

Итак, вы должны проверить наличие соответствующего имени элемента формы:

if 'cb1' in queryset: 
    "item is selected"
else:
    "item is not selected"
4 голосов
/ 17 декабря 2010

Ваш вопрос бессмысленный. foo и bar не являются значениями флажков - они кажутся простыми текстовыми элементами в таблице. Если вы хотите, чтобы они были опубликованы в виде значений, вам нужно где-то поместить их в форму. Это не имеет ничего общего с Джанго.

2 голосов
/ 17 декабря 2010

Я не уверен, что понимаю все, что вы просили, но если вы хотите получить "foo" и "bar", когда пользователь отправляет форму, вам придется добавить их в элемент формы, такой как скрытый или текстовые поля (в зависимости отесли пользователь может изменить их или нет).

Сервер никогда не получит весь DOM при отправке формы.

Кроме того, вам нужно будет найти способ указать, на какомфлажок принадлежит foo & bar.

0 голосов
/ 18 декабря 2010

Как уже говорили другие, это простой HTML - Вы должны поместить значения foo и bar в атрибут «value» входного тега, независимо от того, что отображается на странице. И это все, что вам нужно сделать.

<tr name="item">
        <td><input type="checkbox" name="item" value="{{foo}},{{bar}}"></td>
        <td>>{{ foo }}</td>
        <td> {{ bar }} </td>


</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...