0

我正在尝试保存有关从列表(单选按钮)中选择的元素的会话信息,并在我返回页面时返回它。保存的选择存储在picked_id变量中。{{ picked_id }}我通过在 my 之前添加来检查它是否真的存在,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 %}
4

1 回答 1

1

根据您的回答:

  1. 您正在从您的视图中的 request.POST dict 中设置 pick_id 的值。
  2. request.POST 中的所有值默认都是字符串。
  3. object_list 可能是来自 ORM 的列表。
  4. 这意味着 element.id 是一个 PK 字段。
  5. 这将是一个int。

因此,在将其保存到会话之前,您需要将“picked_id”转换为 int。

所以:

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

……或者无论如何你在你看来是这样做的。

于 2013-02-26T10:46:15.947 回答