z3c.form的optgroup小部件。

z3c.formwidget.optgroup的Python项目详细描述


简介

这个包实现了一个小部件,它将select值分组到optgroups中。

用法

假设您有以下模式:

class IMySchema(Interface):
    country = schema.Choice(
        required=True,
        title=u"Country",
        vocabulary='countries',
    )

    subdivision = schema.Choice(
        required=True,
        title=u"State",
        vocabulary='subdivisions',
    )

    region = schema.Choice(
        required=True,
        title=u"County",
        vocabulary='regions',
    )

创建词汇表时(例如,使用SimpleVocabulary),而不是添加SimpleTerm项:

...
for country in pycountry.countries:
    terms.append(SimpleTerm(value=country.alpha2, token=country.alpha2,
                            title=country.name))
...

您可以添加OptgroupTerm项:

from z3c.formwidget.optgroup.widget import OptgroupTerm

...
country_list = countries(context)
for item in pycountry.subdivisions:
    parent = country_list.getTermByToken(item.country_code).title
    terms.append(OptgroupTerm(value=item.code, token=item.code,
                              title=item.name, optgroup=parent))
...

在您的表单中,只需分配OptgroupFieldWidget

from z3c.formwidget.optgroup.widget import OptgroupFieldWidget

class MyForm(form.Form):
    fields = field.Fields(IMySchema)

    fields['subdivision'].widgetFactory = OptgroupFieldWidget
    fields['region'].widgetFactory = OptgroupFieldWidget

贡献者

Thomas Massmann,作者

更改日志

1.2(2012-05-01)

  • 修复了显示模式模板的错误HTML标记。 [托马斯·马斯曼]

1.1(2012-04-26)

  • 始终将无值消息显示为第一项。 [托马斯·马斯曼]

1.0.1(2012-04-14)

  • manifest.in缺少一些条目。 [托马斯·马斯曼]

1.0(2012-04-14)

  • 初次发布。 [托马斯·马斯曼]

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

推荐PyPI第三方库


热门话题
java实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入