Django复选框只想检查第一个框

时间:2011-02-01 15:32:58

标签: python html django checkbox views

另一个复选框问题。我有一个列表中的项目。每个项目都有一个复选框。我想要做的是勾选列表中的 FIRST 项目的复选框。要知道,由于checked="checked",它已勾选所有复选框。

{% for item in items %}
            <tr class="items_table_row">
                    <td><input type="checkbox" name="{{item.pk}}" value="{{item.pk}}" checked="checked"></td>
                    <td>{{item.tiptop_id}}</td><td>{{item.alternative_id}}</td><td>{{item.title}}</td><td>{{item.type}}</td><td>{{item.format}}</td>
                    <td><span id="{{item.pk}}" name="type">{{item.itemstatushistory_set.latest}}</span></td><td>{{item.itemstatushistory_set.latest.date.date|date:"d M Y"}}</td>
                    <td><a href="{% url tiptop.views.edit_item item.client.pk item.pk %}" onclick="return showAddAnotherPopup(this);">Edit</a></td>
            </tr>
    {% endfor %}

2 个答案:

答案 0 :(得分:1)

Django {% for %}标记设置的

The forloop variable是你的朋友。

将其弹出:

{% if forloop.first %} checked="checked"{% endif %}

{% for item in items %}
     <tr class="items_table_row">
        <td><input type="checkbox" name="{{item.pk}}" value="{{item.pk}}"{% if forloop.first %} checked="checked"{% endif %}></td>
        <td>{{item.tiptop_id}}</td><td>{{item.alternative_id}}</td><td>{{item.title}}</td><td>{{item.type}}</td><td>{{item.format}}</td>
        <td><span id="{{item.pk}}" name="type">{{item.itemstatushistory_set.latest}}</span></td><td>{{item.itemstatushistory_set.latest.date.date|date:"d M Y"}}</td>
        <td><a href="{% url tiptop.views.edit_item item.client.pk item.pk %}" onclick="return showAddAnotherPopup(this);">Edit</a></td>
    </tr>
{% endfor %}

答案 1 :(得分:1)

您可以将checked属性添加到第二个项目中:

{% ifequal forloop.counter 2 %} checked="checked"{% endifequal %}

默认forloop.counter是1索引的,或者您可以专门使用0索引计数器:

forloop.counter0