前言
django-tables2是一个非常不错的App,可以使用各种数据元、默认支持bootstrap等三种页面风格、可以分页、排序、自定义列等等。最近我这边一个项目中的Table展示,几乎都快改成用这个App实现了。
这么好用的组件,Baidu出来的资料非常少,使用过程都只好翻文档+stackoverflow研究。这里也仅把我用到的一些用法,简单总结一下。更多内容,可以查看:
github地址:https://github.com/jieter/django-tables2/
doc文档地址:http://django-tables2.readthedocs.io/en/latest/
使用环境
Django1.11.11
安装配置:
pip install django-tables2
在settings.py中
使用(我承认我偷懒了,项目代码没在身边,所以部分演示代码来自doc文档,缺失部分请自行脑补)
假设我们已经有了Person的Model,创建一个table.py的文件:
view.py中
template中
按照上面步骤,我们可以看到页面可以正常展示表格了,但是使用中,我们还需要下面的要点干货(敲黑板)
1. 如何自定义按钮,并传参数
2. 如何自定义CheckBox,加上选择行的效果,下面代码注释的方法一。通过thinput方式,还能根据表头和表内容,分别定义checkbox的类。这个可以和我上面一篇文章使用Javascript实现table表格的全选/反选功能结合起来了。
3. 分页
在view的people中加入RequestConfig行即可。
4. 如何与Django-Filters结合
仍在在view的people中,PersonTable的参数传入filter.qs,这样既能查询,也能分页。
5. 如果还不能满足需求的终极大招
放心大胆的去改自带模板吧,模板位于django_tables2/templates/django_tables2。
无图无真相,最后上效果图: