原型内容的数据网格,基于z3c.form的行

archetypes.gridfield的Python项目详细描述


简介

archetypes.gridfield添加了对不可内联编辑的数据网格的支持。 使用覆盖窗口可以添加/编辑行。

请注意,当前版本需要plone.app.jquerytools的分支,该分支是 包含在示例构建中。

此外,gridfield小部件仅显示在基本视图窗体上(field 在对象编辑窗体上不可见!!)。这不是一个bug,而是一个特性。

用法

通常安装。之后,您可以向内容类型添加其他字段:

from archetypes.gridfield import GridField
...

GridField('field_name',
    row_interface = IProjectRow
)

...

iprojectrow是一个zope接口,它为一行定义数据。 addform和editform由此生成:

class IProjectRow(Interface):
    title   = schema.TextLine(title=u'Project name', required=True)
    kind    = schema.Choice(title=u'Project type',
                            vocabulary="project.projectTypesVocabulary")
    start_date = schema.Date(title=u'Start date', required=True)
    end_date   = schema.Date(title=u'End date', required=False)

您可以定义自定义的添加/编辑表单和更新小部件:

from archetypes.gridfield.forms import AddForm, EditForm
from collective.z3cform.datetimewidget import DateFieldWidget

class ProjectAddForm(AddForm):
    def __init__(self, context, request):
        super(ProjectAddForm, self).__init__(context, request)
        self.fields['start_date'].widgetFactory = DateFieldWidget
        self.fields['end_date'].widgetFactory = DateFieldWidget

class ProjectEditForm(EditForm):
    def __init__(self, context, request):
        super(ProjectEditForm, self).__init__(context, request)
        self.fields['start_date'].widgetFactory = DateFieldWidget
        self.fields['end_date'].widgetFactory = DateFieldWidget

由于addform/editform被重新定义,我们必须在字段中指定表单 定义:

GridField('projects',
    row_interface = IProjectRow,
    add_form = ProjectAddForm,
    edit_form = ProjectEditForm,
    widget = GridWidget(label="Projects")
)

示例

如果要在单独的构建中测试archetypes.gridfield,请签出full 从SVN打包并使用example.cfg buildout配置:

svn co http://svn.plone.org/svn/archetypes/MoreFieldsAndWidgets/archetypes.gridfield/trunk gridfield
cd gridfield
python2.4 bootstrap.py
bin/buildout -c example.cfg
bin/instance fg

最后访问任何对象的基础视图模板,例如FrontPage:

http://127.0.0.1:8080/portal/front-page/base_view

在自定义构建中使用

请注意,包裹还在开发中。需要分支 plone.app.jquerytools和一些自定义版本的pin。一切都安排好了 示例构建,以便从中复制需求。

更改日志

1.0dev(未发布)

  • 初始版本

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

推荐PyPI第三方库


热门话题
java谷歌扳手单例重新连接故障   使用AES公钥加密的java Proxyreencryption   java EJB拦截器与CDI拦截器   启动appium browser:org时发生java错误。openqa。硒。WebDriverException:运行Appium命令时出错:路径参数。解析必须是字符串   java在Eclipse项目设置中执行环境的重要性   java如何创建容量受限队列实现?   mysql如何将桌面java应用程序连接到在线数据库(适用于傻瓜)?   如何使用java在给定的时间限制内在会话超时之前在数据库中插入数据?   Java运算符的if语句逻辑&&and||   java Spring启动测试失败,原因是缺少ServletWebServerFactory bean,无法启动ServletWebServerApplicationContext   java有没有办法获取实例中属性/字段的顺序?   如何在没有withColumn的情况下将Spark数据集的所有列强制转换为Java中的字符串?   java allocateIds DatastoreService真实世界使用情况   Java的strictfp修饰符是否通过函数调用应用浮点?   html简单Java小程序未在浏览器中显示   Java 2D平台:一些逻辑/物理怪癖