【发布时间】:2018-05-11 12:39:32
【问题描述】:
我在使用分页和过滤时遇到问题。
我在 CBV(ListView) 中使用django-filter 过滤和分页器。
一切正常。分页器过滤后将盒子包裹起来,问题出在模板中分页器的按钮上。当您按 NEXT 或 PREV
过滤器被重置。我找到了解决方案:
<span><a href="?page={{ page_obj.previous_page_number }}
{% for key,value in request.GET.items %}
{% ifnotequal key 'page' %}&{{ key }}={{ value }}{% endifnotequal %}
{% endfor %}">Previous</a>
</span>
但这并不能完全解决问题,所以我可以从我的过滤器发送请求:
?item_title=&description=&ordering=&popular=&min_price=&max_price=&category_brands=11&category_brands=13
因为我在 url 中有两个 category_brands= 并且这个解决方案不起作用,因为我不能有两个相同的键。请帮帮我。
【问题讨论】:
-
我认为问题出在参数的组织上:
?item_title=&description=&ordering=&popular=&min_price=&max_price=&category_brands=11&category_brands=13。搜索一下与此相关的。=&看起来很奇怪... -
Hi, & - 所以有点像从查询字段中粘贴值。如果过滤器中的值为 ==> min_price=1&category_brands=13 并且如果不是 min_price=&category_brands
-
只是我指出的方式不适合这里,也许还有另一种解决方案,如何将分页与过滤器结合起来,并且它们不会相互重叠
-
我认为您必须为您的属性设置值。例如:
item_title=some_value_here&description=another_value&ordering=some_value&....
标签: django url pagination django-filter