django - 在 django 中将 Django_filter 和分页添加到 FilterView 类
问题描述
我正在使用django_filters
lib 来过滤我的列表视图,这是过滤器形式:
class WorkerFilter(django_filters.FilterSet):
class Meta:
model = Worker
fields = ['id', 'branch']
这是视图的外观:
class WorkerListView(FilterView):
model = Worker
paginate_by = 1
filter_class = WorkerFilter
template_name = 'erp_system/worker_list.html'
filterset_fields = ['id', 'branch']
def get_queryset(self):
new_context = Worker.objects.filter(
active=True,
)
return new_context
并以这种方式使用 HTML 模板中的表单:
<form action="" method="get">
{{ filter.form.as_p}}
<button class="btn btn-warning" type="submit"><span class="fa fa-search"></span> بحث </button>
</form>
在这个 HTML 页面的末尾,我有这样的列表和分页器:
{% for item in filter.qs %}
{{item}}<br>
{% endfor %}
{% if is_paginated %}
<div class="pagination">
<span class="page-links">
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}"><button class="btn-success">الصفحة السابقة</button> </a>
{% endif %}
<span class="page-current">
صفحة رقم {{ page_obj.number }} من {{ page_obj.paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}"><button class="btn-success">الصفحة التالية</button> </a>
{% endif %}
</span>
</div>
{% endif %}
分页器部分没有显示,即使我曾经paginate_by = 1
调试它并确保它{% if is_paginated %}
有效
解决方案
推荐阅读
- java - Android:Firebase Cloud Messaging 未发送通知以构建 .apk
- angular - 高图表中大负值和小正值的 Y 轴
- javascript - Rails:javascript addEventListener 找不到动态形式的元素
- c# - 洗牌竞争对手名单,每个月都有不同的竞争对手
- java - 如何在 Java 中生成有效的 EAN13 条形码?
- blueprism - Blue Prism 应用程序建模器无法识别 Firefox 上的身份验证弹出窗口
- python-3.x - RuntimeError: 尺寸不匹配 m1: [axb], m2: [cxd]
- javascript - Axios Post 与 React-native
- ios - 将字典中的值分配到结构中
- sql - Xpath 属性的 PreparedStatement