Django复选框只想检查项目列表的子集

时间:2011-02-02 11:08:17

标签: python html django checkbox subset

另一个复选框问题。我有一个列表中的项目。每个项目都有一个复选框。我想要做的是我想要做的是勾选作为项子集的所有项目。 items = client.storageitem_set.all()的子集是items = models.StorageItem.objects.filter(orderstoragelist__order__pk = order.pk)这是在另一个名为edit_order的视图中定义的。

所以在views.edit_order中,有一个团队的子集列表。我去了views.client_items这是我希望在复选框中勾选所有项目子集的地方。现在代码只检查第一个项。我不想再这样了。我想检查项目的子集。

def client_items(request, client_id = 0):
    client = None
    items = None
    try:
        client = models.Client.objects.get(pk = client_id)
        items = client.storageitem_set.all()
    except:
        return HttpResponse(reverse(return_clients))
    return render_to_response('items.html', {'items':items, 'client':client}, context_instance = RequestContext(request)) # Redirect after POST


{% for item in items %}
            <tr class="items_table_row">
                    <td><input type="checkbox" name="{{item.pk}}" value="{{item.pk}}" "{% ifequal forloop.counter 1 %} checked="checked"{% endifequal %}>
                    <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 个答案:

答案 0 :(得分:0)

这可能有所帮助,虽然我以前从未这样做过,假设你有一些模型M,你只需要用你需要的数据/选项渲染它的形式并应用到子集上。


# Model
class M(models.Model):
    status = models.BooleanField() # this will be our checkbox
    # your stuffs

# Model's form
class MForm(ModelForm):
    class Meta:
        model = M

        widgets = {
            'status': CheckboxInput(attrs = {'checked': 'checked'}),
        }

苏丹