Zope的通用批量支持
项目描述
此包为Zope 2、Zope 3和Grok提供批量功能。
示例
这是一个非常直接的示例。我们需要定义一个工作上下文
>>> import grokcore.view as grok >>> from persistent import Persistent >>> from zope.component import queryMultiAdapter >>> from zeam.utils.batch import Batch >>> from zeam.utils.batch.interfaces import IBatching >>> class Content(Persistent): ... pass
现在,您可以定义一个使用批量并渲染它的视图
>>> class MyViewClass(grok.View): ... grok.context(Content) ... ... def update(self): ... fulllist = [1, 2, 3, 4, 5, 6, 7, 8, 9] ... self.myitems = Batch( ... fulllist , count=3, name='nbs', request=self.request, ... factory=lambda x: str(x)) ... ... self.batch = queryMultiAdapter( ... (self, self.myitems, self.request), ... IBatching)() ... ... template = grok.PageTemplate(''' ... <tal:navigation tal:replace="structure view/batch" /> ... <span tal:content="item" tal:repeat="item view/myitems" /> ... <tal:navigation tal:replace="structure view/batch" /> ... ''')
这将生效
>>> from grokcore.component import testing >>> testing.grok_component("view", MyViewClass) True >>> from zope.publisher.browser import TestRequest >>> request = TestRequest() >>> root = getRootFolder() >>> root['myObject'] = Content() >>> myobj = root['myObject'] >>> view = queryMultiAdapter((myobj, request), name="myviewclass") >>> "batchNav" in view() True
API
- 批量
此对象实现了批量。
批量对象使用以下参数实例化
要批量的对象列表
请求
每页项目数(作为count,默认为10)
名称(可选)
一个工厂,它将在每个迭代之前传递给每个项目(可选)
批量是一个可迭代的对象,其行为类似于列表。它仅提供对当前页面的对象集的访问。
它提供了生成的页数和当前位置。请参阅接口,获取更多信息。
一个多适配器提供 IBatching 可以渲染批次。它适应上下文、批次对象和请求。此组件的 __call__ 方法将返回包含您批次的基本控件(如下一页和上一页链接以及直接访问其他页面的链接)的 HTML 片段。
- DateBatch
该对象实现了一个日期范围的批次。它与常规批次具有相同的 API,除了
对象列表被一个可调用的函数替换,该函数接收一个 datetime 值作为参数,并返回给定周期内的对象列表
计数选项已更改为使用 BATCH_DAY 或 BATCH_MONTH 标记对象。
变更日志
1.1 (2012-09-24)
添加了一种新的批次类型,AlphabeticalBatch,类似于 DateBatch,可以用来遍历固定集合的项目,如字母或数字。
修复了在常规批次中,当 start 值高于批次元素数量时的一个错误。
为日期批次添加了两个选项 min 和 max,以定义可能的限制。
1.0 (2011-11-07)
添加了一个新的批次组件,DateBatch,它能够浏览年份或月份的周期。
batch 已重命名为 Batch。方法已重命名以遵循 pep8 建议(例如,batchLen 重命名为 batch_length)。
已审查模板:值可以通过模板变量 batch 访问,而不是直接访问。此修复解决了与 Chameleon 兼容性的问题,其中 next 无法定义(这是一个 Python 内置函数)。
0.7 (2010-10-05)
在批次对象中添加了一个 __len__ 方法,它返回通过当前批次可查看的对象数量。这样,它可以与模板中的 tal:condition 一起使用。
在视图中使用 keep_form_data 选项可以防止在生成的链接中包含已发布的表单数据(有时您想要它们,有时您不想要)。
0.6 (2010-07-15)
生成的批次链接可以包含链接中的其他参数。这允许您对批次表单结果进行批处理。
0.5 (2009-11-17)
批处理视图有两个新属性:first 和 last,它们提供了指向第一页和最后一页的链接。
0.4.1 (2009-10-16)
修复了损坏的发行版,该发行版缺少 i18n 文件夹。
0.4 (2009-10-16)
添加了 README.txt 作为 doctest [trollfot]
渲染由 IPageTemplate 组件执行,而不是由 Batching 本身执行。[trollfot]
我们不再使用 IBatchedContent。它已被删除。[trollfot]
zeam.utils.batch 现在已完全理解。[trollfot]
batchView 已重命名为 Batching。[trollfot]
您可以使用显示批次的视图来适配批次:其名称在生成链接时将保持不变,
批次可以通过计数为 0 来 禁用,
添加了法语、英语和荷兰语的翻译。
0.3 (2008-10-18)
修复并添加测试,
如果所有内容都适合一页,则不显示批处理导航,
不再为批次的首页生成特殊链接。
0.2
初始版本
项目详情
zeam.utils.batch-1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d30c94cf9544d6c9dacf95a0f0c25739edbe8be7656056dd26e4cf9b63db1629 |
|
MD5 | cc1b2aecc26afc7d4f145fe4bcd597c7 |
|
BLAKE2b-256 | 16066b9aad850b9f21db15a206fbda6b9de819ca339e199bcf6873ebf26dfd4b |