我使用Django-Tables2和以下代码将数据加载到数据表中。在
sales_data = SalesTable(sale.objects.all().order_by('-time'))
RequestConfig(request,paginate={'per_page': 50}).configure(sales_data)
我的Sales表有140万行,但是上面的RequestConfig方法(django_tables2.table)在分页等方面非常快
现在,我想对表进行一个列过滤,并使用django过滤器。它花费了太长的时间,消耗了整个记忆。有没有办法,我可以像正常的表格加载一样快速过滤?在
视图.py
^{pr2}$网址.py
url(r'^filtertest$', sales_views.SalesFilteredSingleTableView.as_view() , name='salesfilterview')
过滤器.py
import django_filters
import sales.models
class SaleFilter(django_filters.FilterSet):
class Meta:
model = sales.models.sale
表格.py
import django_tables2 as tables
from sales.models import sale
class SaleFilteredTable(tables.Table):
class Meta:
model = sale
attrs = {"class": "paleblue"}
per_page = 50
提前谢谢!在
在CBV中,不是过滤器,过滤器.qs必须通过。在前一种情况下,整个表都被加载到内存中,因此加载时间会更长,并且会发生浏览器崩溃。在
通过此修改,两个空的filter和filterform查询集都将与LIMIT query一起加载。在
视图.py
参考
https://github.com/carltongibson/django-filter/issues/442
相关问题 更多 >
编程相关推荐