Django模板-设置复选框已检查object.val == true

时间:2018-07-13 08:13:10

标签: javascript python django checkbox django-templates

我是初级后端开发人员。我不知道如何使用JS。

我无法设置

<input type="checkbox" name="player_check"> 

是的... 或相反,我无法设置

<input type="checkbox" name="player_check" checked>

否。

我的代码:

<table id="some_table">
    <thead>
    <tr>
        <th>Prepared</th>
    </tr>
    </thead>
    <tbody>
    {% for player in players %}
        <tr>
            <td>
                <input type="checkbox" name="player_check">
            </td>
        </tr>
    {% endfor %}
    </tbody>
</table>

比方说,在“玩家”中,我有5位玩家,每个玩家的值都为“ player_check”。

其中两个有:

player.player_check = True

休息:

player.player_check = False

我正在尝试使用{{}}或{%%}用这些值来初始化表格中的复选框

我尝试过:

<input type="checkbox" name="player_check" value=1>
<input type="checkbox" name="player_check" value="1">
<input type="checkbox" name="player_check" value="True">
<input type="checkbox" name="player_check" value=True>
<input type="checkbox" name="player_check" value="checked">

什么都行不通... 然后我发现该复选框已检查了参数,因此:

<input type="checkbox" name="player_check" checked> 

没关系,但是...现在我无法将其关闭:

<input type="checkbox" name="player_check" checked="false">
<input type="checkbox" name="player_check" checked="0">
<input type="checkbox" name="player_check" checked=0>
<input type="checkbox" name="player_check" checked="unchecked">

所以我决定使用Django templpates +更改python代码: 现在 player.player_check等于选中或未选中

它仍然不起作用!现在,我不能将{{}}放在没有“ something” = {{{foo}}}之类的名字的地方

现在我有0个主意,我可以做些什么来使其工作...也许是JS?但是我不相信仅在django / python中没有正确的方法来做到这一点。 ; /

1 个答案:

答案 0 :(得分:3)

您可以使用{% if ... %}标签来实现此目的:

{% for player in players %}
<tr>
  <td>
  <input type="checkbox" name="player_check"{% if player.player_check %} checked{% endif %}>
  </td>
</tr>
{% endfor %}

但是我认为您最好使用Django表单,这将为您提供更优雅的方式:您指定表单字段,而Django将处理其余部分。