table是一个库,可以轻松地创建全功能的html表

tri.table的Python项目详细描述


三表

tri.table是一个库,可以轻松地制作全功能的html表:

  • 生成标题、行和单元格
  • 标题分组
  • 过滤
  • 排序
  • 批量编辑
  • 分页
  • 自动行跨距
  • 链接创建
  • 多层次定制,一直到单元格模板

所有这些示例和使用更多功能的更大示例都可以在示例django项目中找到。

阅读完整的文档了解更多信息。

简单示例

啊!

这就是你得到的:

表U示例<1.png

炫丽的django功能

假设我有一些型号:

啊! 啊!

现在我可以在这样的表格中显示条形图列表:

啊!

这给了我一个带有过滤、排序、批量编辑和分页的视图。

所有这些示例和使用更多功能的更大示例都可以在示例django项目中找到。

阅读完整的文档了解更多信息。

使用方法

向已安装的应用程序添加三个表单、三个查询、三个表。

动机

tri.table是因为对trioptima创建表的方式感到失望而产生的。我们有很多表,生成这些表的代码包括长HTML模板,并且通常以一些简单的方式提取和按摩数据的代码最终成为模型类或模板标记上的方法,即使它只被一个视图使用。

这段代码也容易出错,因为我们经常根据用户的权限显示或隐藏列,这意味着 thead tbody 必须同步。当你有很多列和越来越复杂的逻辑何时显示/隐藏列时,这可能会变得比听起来更难!

我们还看到,几乎所有列的名称(也称为标题)都可以从它们应该显示数据的字段的名称中派生出来,因此我们选择了默认值以简化此情况。

对我们来说,在多个层次上进行定制是非常重要的。许多表库对于默认情况都有非常好且简短的代码,但是当您必须定制一些小东西时,您必须重写库中的大量代码。我们不想这么做,因为我们创建这个库是为了从现有的代码库中重构出这个东西。最后,我们得到了一个强大的模式,即能够为定制点提供可调用的内容,从而导致一些小的调整进入表定义,而不是分散在模型或模板标记代码中。我们也有许多级别或定制,因此从"以某种方式显示列x、y和z"到重定制的路径是平滑和渐进的。

我们选择模仿django表单和模型的声明方式,因为我们非常喜欢这种声明式风格,但是您也可以如果你想的话,可以用一种更实用的方式。当您想要创建以编程方式显示的列列表时,后者非常有用,例如。

这个图书馆对我们来说是一个巨大的胜利。当我们以后想调整视图时,在不牺牲任何灵活性的情况下,创建带有表的页面的时间大大减少了。

运行测试

您需要安装TOX,然后只需进行测试

更改日志

8.0.0(2019-06-14)

  • 将模块从 tri.table 重命名为 tri_table
  • 放弃对python2和django<;2.0的支持

7.0.2(2019-05-06)

  • 修复了from_model在继承时丢失类型的情况

7.0.1(2019-05-03)

  • 修复了一个错误,其中包含查询或大容量但attr=none的列将崩溃

7.0.0(2019-04-12)

  • 使 快捷方式与子类化兼容。以前的修复方法并没有完全起作用。
  • 使用新的major tri.declarative和update来遵循类成员快捷方式的新样式
  • 已拆下django 1.8的支架
  • bulk queryset 现在可用于创建自己的bulk操作,而无需使用 table.bulk\u form
  • 批量表单现在通过 表单自动创建。从'u model 正确创建
  • 查询现在通过 query.from_model 正确地自动创建

6.3.0(2019-03-15)

  • 使列快捷方式与子类化兼容

6.2.1(2019-03-05)

  • 修复了在django 2.0+中使用自定义分页器时发生的崩溃

6.2.0(2019-03-04)

  • Jinja2兼容性修复程序(仍不能完全工作)
  • 预处理数据 现在接受一个新的关键字参数表
  • 现在您可以通过table.paginator_context获取paginator上下文本身
  • 分页器模板是可配置的
  • 修正了一个错误,在这个错误中,我们触发了自己对 列的抨击警告
  • 为django 2.0+使用新的paginator api

6.1.0(2019-01-29)

  • 不赞成 参数 属性 而赞成 标题
  • 添加了css类 升序 / 降序 在标题上
  • 通过 column.superheader
  • 增加了通过头模板定制头模板的功能
  • 已弃用 标题 参数到
  • 不推荐使用css类的参数
  • 从<;tr>;标记中删除了class='row{1,2}'。使用css可以更好地实现这一点。

6.0.3(2018-12-06)

  • 错误修复:"全选"标题按钮应该触发单击事件,而不仅仅是切换状态。

6.0.2(2018-12-06)

  • 错误修复:选择时隐藏"选择所有项目"问题再次单击所有按钮。
  • 错误修复:只有在分页器存在时才显示"全选项目"问题。

6.0.1(2018-12-04)

  • 错误修复:"选择所有项目"问题只应出现一次。

6.0.0(2018年12月3日)

  • 删除了 pks post\u bulk\u edit的参数。此参数与非分页批量编辑不兼容,并且与 queryset 参数冗余。
  • 增加了对整个QuerySet的批量编辑支持,而不仅仅是对当前页面上所选项目的批量编辑。
  • 修复了在使用自定义行模板时模板上下文未传递到行呈现的错误。
  • 删除了 paginator 模板标记,将功能移到 表中。render\u paginator 。这意味着它可以从Jinja2使用,并且通常更容易使用。
  • 如果不需要,请避免使用tri.query进行筛选。这意味着您现在可以在将查询集传递给tri.table之前从中获取一块,前提是并且仅当您没有要应用的筛选器时。
  • 新特性:在 上重新启用属性 预处理数据。例如,如果要在查询集的每个结果中显示多行,或将分页数据转换为列表并对项目进行批处理变异,则此功能非常有用。
  • 预处理行 现在不赞成返回none。你现在应该把那一排还回去。返回发送的对象可能就是您想要的。

第5.3.1节(2018-10-10)

  • 为可选的布尔字段添加了 列.boolean三态
  • 添加对在表上设置命名空间的支持,以便能够在同一视图中的两个表之间重用列名。
  • 删除了对设置默认值的错误使用。这可能会导致不接受嵌套参数的重写。

5.3.0(2018-08-19)

  • 添加了预处理行功能。在访问之前,您可以使用它对行进行适当的变异。
  • 制作 表格

第5.2.2节(2018-06-29)

  • 修复自定义单元格格式输出上的错误标记安全调用。

第5.2.1节(2018-06-18)

  • 修正了向后兼容 链接的错误

5.2.0(2018-06-15)

  • 新特性:默认排序顺序。只需将 默认排序顺序 传递到
  • link 类现在只继承自tri_form link 。为构造函数参数 url
  • 引入了一个弃用警告
  • 简化了对表的处理。在大多数手术中,你不应该再关心这个了。您仍然需要调用 prepare 来触发解析url参数以进行排序等操作。
  • 修复了"多对多"工厂

第5.1.1节(2018-04-09)

  • 懒洋洋地记着boundcell.value

5.1.0(2018-01-08)

  • 修复了不包含任何列的排序,这在python 3中不起作用

5.0.0(2017-08-22)

  • 移到tri.declarative 0.35、tri.form 5.0和tri.query 4.0。查看tri.form和tri.query的发行说明,了解向后不兼容的更改
  • 删除了不推荐使用的模板名参数以呈现表
  • 请注意 foo\u类 若要指定构造函数/callable不再是有效参数,因为更新了tri.form,请使用 foo\u call\u target 或仅使用 foo

4.3.1(2017-05-31)

  • 错误修复:反向关系排序不起作用

4.3.0(2017-04-25)

  • django 1.10模板处理的错误修复
  • 更新至tri.form 4.7.1
  • 在表格标记中移动了"批量"按钮
  • 放弃对django 1.7的支持

4.2.0(2017-04-21)

  • 新功能:批量编辑后回调

4.1.2(2017-04-19)

  • 修复了readme.rst中愚蠢的非ascii字符,并将其更改为在同一文件中保留愚蠢的非ascii字符。

第4.1.1节(2017-04-10)

  • 修复丢失的属性类副本

4.1.0(2017-03-22)

  • column 类现在继承自 object ,使实现更像pythonic。 (在构造函数调用中仍然可以重写属性,请参见 namespaceawareobject
  • *.template 覆盖现在可以指定为 django.template.template 实例。
  • template\u name 参数到 render\u table 现在已被弃用,并由 template 参数取代。

4.0.0(2016-09-15)

  • 更新为最新的tri.form、tri.query、tri.declarative。这给我们提供了更简单的工厂,以便使用from_model方法。
  • 添加了 列的快捷方式: 时间 十进制
  • 以下快捷方式已更新为使用相应的变量:date、datetime和email
  • 修复空负载的终结点结果返回中的故障。 [] 是有效的端点分派结果。
  • render_table / render_table_to_response 不再允许表作为位置参数传递

3.0.1(2016-09-06)

  • 修复未识别排序参数的崩溃。

3.0.0(2016-09-02)

  • 绑定的行 被传递给行级可调用。这是一个潜在的突破 如果在函数签名的末尾没有执行 ** 应该!)
  • bound_row bound_column 传递给单元格级可调用。这是一个 如上图所示的潜在破坏性变化。
  • boundrow 现在支持 extra
  • 与django 1.9&1.10兼容
  • 添加了对 表的kwargs配置命名空间的严格检查
  • 额外的 命名空间添加到
  • 绑定单元格 参数添加到单元格模板的呈现中。

2.5.0(2016年7月14日)

  • 添加了可选的 endpoint\u dispatch\u前缀 表配置以启用多个 同一端点上的表。

2.4.0(2016-07-13)

  • 使boundcell的更多部分可重复使用。

2.3.0(2016年7月12日)

  • 为自定义属性的对象添加了额外参数的传递。

2。2.0(2016-06-23)

  • 修复表的列托管缺少的命名空间集合。from_model

2.1.0(2016-06-16)

  • 重命名为更清晰的"注册"列"工厂"。
  • 改进了缺少django字段类型列工厂声明时的错误报告。
  • 将迭代接口添加到表中以循环超绑定行
  • endpoint 元类参数添加到表中以启用自定义json端点

2.0.0(2016-06-02)

  • 支持ajax后端
  • dependent tri.form和tri.query库有新的主要版本

1.16.0(2016-04-25)

  • 自动字段模型处理中字段的小错误修复

1.15.0(2016-04-21)

  • 表.from_model implemented

1.14.0(2016-04-19)

  • 列的 后添加 属性以启用自定义列排序(请参见 tri.declarative.sort_after()
  • 在声明的字段和类meta中启用混合列定义。
  • 如果表单无效,则不显示任何结果

1.13.0(2016-04-08)

  • 添加Python3支持

1.12.0(2016-02-29)

  • 更改了指定HTML属性和类的语法。他们现在使用的寻址方式与 其他事情,例如:column(attrs_uu foo="bar",attrs_uu class_uu baz=true)将产生如下结果 <;th class="baz"foo=bar>;…<;/th>;

1.11.0(2016-02-04)

  • 修复行attr et al.

1.10.0(2016-01-28)

  • 稍微更改单元格模板和行模板语义,以便在模板中启用自定义单元格排序。

    行模板实现现在可以访问boundcell对象以使用默认的单元格呈现。

    现在假设Cell_u模板实现将标记自身呈现为<;td>;。

1.9.0(2016-01-19)

  • 已修复为使用最新版本的tri.form

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量