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.POSTdictからpicked_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 に答える