为zope.formlib提供自动完成字段和小部件

horae.autocomplete的Python项目详细描述


简介

horae.autocomplete包为 zope.formlib基于 autocomplete widget of jQuery UI

用法

有两种类型的自动完成字段可用:

自动完成列表
允许选择多个值
自动完成技术
允许选择一个值

要为列表或选择字段启用自动完成功能,只需替换List 分别是来自zope.schemaChoice。 由horae.autocomplete.fields

from zope import interface, schema

from horae.autocomplete import fields

class ISampleSchema(interface.Interface):
    """ A schema using an autocomplete choice and list field
    """

    choice = fields.AutocompleteChoice(
        values = (u'one', u'two', u'three',)
    )

    list = fields.AutocompleteList(
        value_type = schema.Choice(
            values=(u'Tag 1', u'Tag 2', u'Tag 3',)
        )
    )

AutocompleteChoice字段的参数与Choice字段的参数完全相同 由zope.schema提供同样的道理 使用与的List字段相同参数的AutocompleteList字段 zope.schema唯一的限制是 value_type必须是ChoiceTextLine字段。

高级使用

值提供者

在字段中输入术语时提供给用户的可用值 通过适配器实现horae.autocomplete.interfaces.IValueProvider存在默认值 已经实现了值提供程序,它根据给定的 输入字段的词汇表。这是通过在 词汇表并检查一个值是否与给定的输入匹配。非常大或无限大 词汇这是相当昂贵或根本不可能。有效地支持 词汇表值提供程序可以通过注册更特定的适配器来重写 实现horae.autocomplete.interfaces.IValueProvider。看那些适配器 按以下顺序向上排列,其中第一个找到的使用:

命名上下文提供程序
一个值提供程序,它调整在 与字段同名
命名的非文本提供者
使用与 字段
上下文提供程序
适应contextfieldrequest的值提供程序
非文本提供者
一个适应fieldrequest的值提供程序

自定义值提供程序的示例可以在horae.search 提供不可重写词汇表和相应值提供程序的包 使用目录中的全文搜索根据输入查找可用值。

字段提供者

如前一章所述,值提供者是至少适应 fieldrequest要查找这些提供者,需要查找字段 第一。在大多数情况下,这根本不是问题,因为字段是由模式定义的 形式的。但在某些情况下,只有在呈现 然后只需要呈现整个表单以找到所需的字段有效地 支持这个用例,通过注册一个 适配器实现horae.autocomplete.interfaces.IFieldProvider并调整 contextrequest

变更日志

1.0a1(2012-01-16)

  • 初始版本

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

推荐PyPI第三方库


热门话题
具有未知数量条件的java If语句   java如何在Spark中使用两个“条件”进行过滤?   雅加达ee为ColdFusion提供的最佳Java ee服务器   java如何在jersey的MessageBodyWriter方法中获取writeTo中的anotations值?   java从脚本文件调用jar文件中的函数   java在执行insert语句后,如何获得id值为的语句?   在OS X上设置OpenCV Java绑定   java使用for循环遍历数组x。以字符串形式返回x的元素,其中每个元素由一个空格分隔   ApacheiClientBuilder为Algolia Java创建的APIClient是线程安全的吗?   java在DFS/BFS算法中获取邻居时避免内存分配?   java使用AES/CBC/PKCS5P加密大文件(2GB)   允许保存/加载列布局的Java DB网格组件   队列大小为1的java Spring调度   跑步带有Java参数的exe   java正则表达式将所有“<”和“>”标记替换为“&lt;”及“&gt;”在<<![CDATA]>标签?   java何时同步变量?