【发布时间】:2021-07-25 06:59:26
【问题描述】:
我的复选框 html:
<form method="GET">
{% for subcategory in subcategories %}
<div class="filter-items filter-items-count">
<div class="filter-item">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" value="{{subcategory.id}}" name="subcategory" id="{{subcategory.id}}" {% if subcategory in subcategories1 %} checked {% endif %}>
<label class="custom-control-label" for="{{subcategory.id}}">{{subcategory}}</label>
</div><!-- End .custom-checkbox -->
<span class="item-count">{{subcategory.products.all|length}}</span>
</div><!-- End .filter-item -->
</div><!-- End .filter-items -->
{% endfor %}
<button type="submit" class="btn btn-primary w-100 mt-3">Filter!</button>
</form>
它可以正常制作过滤器。 意见:
subcatid = request.GET.getlist('subcategory')
查询字符串:
?subcategory=5&subcategory=6
它可以是一个或多个,取决于子类别的数量。 但是当我转到下一页时,我想它会变成这样:
?page=2&subcategory=5&subcategory=6
但它会删除我选择的最早的子类别并保留最后一个,只有一个,例如:
?page=2&subcategory=5
当我在 url 字段中手动输入 ?page=2&subcategory=5&subcategory=6 时,它可以正常工作,但不能通过分页按钮。
所以虽然过滤器中的所有复选框都有相同的名称,name="subcategory" 我通过更改为 name="{{subcategory}}" 使它们唯一,现在每个复选框都有唯一的名称,现在点击下一页后,一切都保留了,没有问题前,
但在视图中,我不知道如何用 deafferents 名称获取它们
subcatid = request.GET.getlist('subcategory')
【问题讨论】:
-
你能分享一下你为分页写的逻辑吗?
-
我的整个分页视图和html
标签: django checkbox django-views django-templates