2013-02-26 2 views
0

Я пытаюсь сохранить в сессии информацию о выбранном элементе из списка (переключатели) и вернуть его, когда вернусь на страницу. Сохраненный выбор сохраняется в переменной picked_id. Я проверил, действительно ли это, добавив {{ picked_id }} до моего input(type="radio"), и я подтвердил, что представление обеспечивает правильное значение.Запомните выбор переключателя радио в цикле

Проблема в том, что мой код не работает. Пожалуйста, помогите мне узнать, что случилось с этим:

{% if objects_list %} 
<ul> 
    {% for element in objects_list %} 
    <li> 
     <input type="radio" name="object" value="{{ element.id }}" {% ifequal picked_id element.id %}checked="checked"{% endifequal %}> 
     {{ element.name }} 
    </li> 
    {% endfor %} 
</ul> 
{% else %} 
    <p>{{ no_objects_mesage }}</p> 
{% endif %} 
+1

Являются ли оба элемента ни строками, ни ints? –

+0

ints. В сеансе я сохранил значение, которое я получил от request.POST ['object']. – KonradOliwer

ответ

1

На основании вашего ответа:

  1. Вы устанавливаете значение picked_id из Словаре request.POST на ваш взгляд.
  2. Все значения в request.POST по умолчанию являются строками.
  3. Список объектов - это, вероятно, список из ORM.
  4. Это означает, что element.id является полем PK.
  5. Это будет int.

Так что вам нужно бросить 'selected_id' в int перед тем, как сохранить его в сеансе.

Итак:

request.session['picked_id'] = int(request.POST.get('object', 0)) 

... или как вы делаете это с вашей точки зрения.

+0

Тогда ты очень, что решил эту проблему. – KonradOliwer

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