Django 模板 - 如果 object.val == true,则设置复选框已选中

Adr*_*eja 4 javascript python django checkbox django-templates

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

我不能设置

<input type="checkbox" name="player_check"> 
Run Code Online (Sandbox Code Playgroud)

真的...或反向我无法设置

<input type="checkbox" name="player_check" checked>
Run Code Online (Sandbox Code Playgroud)

错误的。

我的代码:

<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>
Run Code Online (Sandbox Code Playgroud)

假设在“玩家”中我有 5 个玩家,每个玩家都有一个值“player_check”。

其中两个有:

player.player_check = True
Run Code Online (Sandbox Code Playgroud)

休息:

player.player_check = False
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 {{}} 或 {% %} 使用这些值在我的表中启动复选框

我试过了:

<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">
Run Code Online (Sandbox Code Playgroud)

什么都不起作用......然后我发现复选框有一个参数被选中,所以:

<input type="checkbox" name="player_check" checked> 
Run Code Online (Sandbox Code Playgroud)

没关系但是...现在我无法关闭它:

<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">
Run Code Online (Sandbox Code Playgroud)

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

它仍然不起作用!现在我不能把 {{ }} 没有名字,比如“something”={{ foo }}

现在我有 0 个想法我可以做更多的事情来使它工作......也许是 JS?但我不敢相信仅在 django/python 中就没有正确的方法来做到这一点。;/

Wil*_*sem 9

例如,您可以使用{% if ... %}标签执行此操作:

{% for player in players %}
<tr>
  <td>
  <input type="checkbox" name="player_check"{% if player.player_check %} checked{% endif %}>
  </td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但我认为您最好使用 Django 表单,它会以更优雅的方式为您处理此问题:您指定表单字段,Django 将处理其余部分。