问题标签 [z3c.form]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
77 浏览

plone - 使用 z3c.form 对 buttonAndHandler 进行单元测试

我只是想编写一个单元测试来测试我的敏捷 SchemaForm 中使用 buttonAndHandler 的方法,但我无法在 z3c.form 文档和敏捷开发人员手册中找到任何合适的内容。我相信我被装饰器的行为绊倒了,但我不知道我应该如何以编程方式调用这些方法。

使用 restrictedTraverse 或 getMultiAdapter 会产生相同的对象。因此,如果我想调用 form.addFileSendToEditors 我将表单作为第一个变量传递,“动作”是什么?

0 投票
0 回答
41 浏览

interface - Plone/collective.z3cform.DataGridField- 是否可以从添加和更改的 DataGridField(在 form.SchemaForm 中)获取行?

我有一个使用包含 DataGridField 的接口的 form.SchemaForm。

这是我的界面示例,其中包含 DataGridField: class IAsset(form.Schema): """

这是 DataGridField 使用的接口示例。

我有一个 Asset 类和一个 Calibration 类,它们都与后端数据库相关联。每个校准记录都与一个资产相关联。

目前我的解决方案是遍历 DataGridField 中列出的每一行,并确定列表中的记录是否在数据库的 Calibrations 表中,如果不是则添加新记录,如果是则更新记录。这对我来说似乎很明显,这是一个低效的解决方案。那么,是否可以确定 DataGridField 中添加了哪些行以及更改了哪些行?

0 投票
2 回答
130 浏览

python - 如何创建具有多个模式的 z3c.form?

我正在使用 cms Plone 构建一个包含其他两个模式的表单。

使用Group Forms,我已经能够包含两个模式的两个字段。但是,它们会丢失所有属性,例如隐藏或当我使用 datagridfield 构建表时。我想要做的是让这两个表单都带有它们的字段,并且在保存时能够将它们保存在单击链接的对象中作为父对象->对象1 [表单顶部]->对象2 [表格底部]

这是我的python代码:

此代码显示 IQuestion、IQuestionPart 的两个字段,而不考虑以下内容:form.mode(contype='hidden') 或 DataGridField 小部件。我找到了一种显示带有字段提示的正确表单的方法。

我觉得我还有很长的路要走。我和一些人谈过。我现在正在尝试使用单独的表单和视图。

到目前为止,我的代码在这一点上:

我正在为表单的呈现而苦苦挣扎,并且 QuestionSinglePart 对象没有索引属性。

在与一些 plone 开发人员一起工作了几个小时后,我们已经弄清楚发生了什么。

我遗漏了:

我需要在视图中定义一个索引,如下所示:

我需要将此添加到视图init中:

在视图的更新方法中,我需要在表单显示之前调用它。我还可以删除数据提取并将其移至表单。

我目前仍在努力将数据保存到对象中。

0 投票
1 回答
118 浏览

validation - 使用内联验证克隆 z3c.form.GroupForm

我坚持使用两种模式来构建具有内联验证的 z3c.GroupForm:

按照https://pypi.python.org/pypi/z3c.form#group-forms我做了:

这行得通。但它给了我非常简单的渲染并且没有内联验证。我试图包含来自 plone.autoform 的混合,但这些似乎不兼容 -> MRO 错误。

我很确定我错过了什么。在 Plone 中有 plone.app.z3cform 和其他用于 z3c.form 使用的包装器。但是我没有找到将它们用于 z3c.groups 的示例,因此我尝试了基本的 z3c 变体。

我喜欢实现的用例如下: 一个表单,其中分别在一个选项卡中具有 Schema A 和 Schema B 的字段。然后,表单动作处理是手动编码的,并将负责处理底层内容类型。换句话说:不会/不应该使用灵巧的“积极内涵”魔法。

但我喜欢根据我为模式注册的模式提示和适配器进行内联验证。

0 投票
1 回答
319 浏览

javascript - 如何在 Plone 上禁用 z3c.form 的内联验证?

我有一个定制的包装表格。内联验证很合适,因为输入 data.errmsg 为 null 并且无法处理,因此 javascript 遇到错误。

它吐出这个回溯:

对于内联 javascript 的这一部分中的错误:

如何禁用表单的内联验证,以便在尝试验证时不会收到错误消息?

0 投票
1 回答
127 浏览

plone - Plone/Zope/Z3c- 什么会导致 publishTraverse “找不到页面”?

我正在尝试获取一个 z3c form.Form 来填写其信息,而不是在 url 中创建一个 get 参数,我想使用 publishTraverse。

所以这是我的代码的一部分:

my_object_view.py:

在浏览器文件夹中的 configure.zcml 文件中:

当我在 url 中使用 get 参数时,我能够让它工作,但是当我尝试使用 publishTraverse 时,我得到了找不到页面的错误。奇怪的是,当

顺便说一下,当我尝试使用发布遍历时,这就是我的网址:

当我省略 1,但保留“/”时,它仍然会找到该页面。我做错了什么导致这种情况?

0 投票
1 回答
43 浏览

plone - 非编目内容之间的 Dexterity z3c 关系是否可能?

具体来说,我希望能够使用具有指向 acl_users.source_users 中用户的 z3c 关系字段的 Dexterity 内容。Plone 文档演示了如何使用 plone.formwidget.contenttree 在模式中创建关系,但活页夹似乎都基于目录搜索。由于用户在这个意义上并不满足,因此他们没有被编目。

我不确定这是否是最好的方法,但能够链接到用户似乎很简单,就像一个抽象概念。我想另一种方法是将用户 ID 存储为一个简单的字符串字段并监听用户管理事件。

0 投票
2 回答
211 浏览

plone - 集体.z3cform.datagridfield 敏捷和行为

我正在研究 Dexterity 的行为,并为此使用了collective.z3cform.datagridfield。

这应该是:

这是我的代码:

但是对于“链接”字段,我只得到一个 Select-Dropdown 或一个 In-Out-Widget(取决于使用的 Widget),没有可供选择的数据/内容类型。

0 投票
1 回答
56 浏览

plone - 敏捷相关项目 - 浏览项目没有内容

我对 z3c.relationfield 的默认小部件的“浏览项目”覆盖有问题,我相信它正在使用 plone.formwidget.contenttree。我使用它创建了一个自定义字段,但使用 IRelatedItems 行为遇到了同样的问题 - 覆盖没有可浏览的内容。我仍然可以使用这个小部件的自动完成组件,并且可以毫无问题地以编程方式设置关系,所以我认为 intids 实用程序没有问题。我还在我的本地机器和开发服务器上进行了测试,一切正常,只是没有在生产中(当然)。

我为这个问题的模糊性质道歉,但我很难过。我可以在这里寻找任何常见的陷阱吗?我可能会忽略任何配置步骤?

0 投票
1 回答
161 浏览

plone - 如何让 RelationList 按 object_provides 过滤?

我在获取 RelationList 以在小部件中显示我想要的内容时遇到了一些麻烦。我看到的行为对我没有意义: /mysite/folder1/foo - 新内容,我想在其中创建关系 /mysite/folder2/bar - 我想链接到的项目。

无论界面如何,这似乎都会显示所有敏捷内容 - 尽管只有提供 IMyInterface 的内容是可选的。

我不明白为什么这会导致不同的行为,但会导致不显示任何内容。这似乎是查询路径的问题,因为这确实有效:

然而,这并不理想,因为它需要知道路径。我期望该行为仅显示文件夹内容和提供我的界面的内容,并且仅显示提供我的界面可选择的内容。那不可能吗?

我知道默认情况下不再支持关系 https://pypi.python.org/pypi/plone.app.dexterity#relation-support-no-longer-included-by-default(我正在使用 plone.app .dexterity 1.2.1 和 Plone 4.2)

或者,一个简单的选择小部件就可以了,但我无法让任何默认的 z3c.form 小部件与该字段正常工作(它们渲染得很好,但没有可选择的内容)。也许最好只使用一个常规的 z3c 模式列表和一个值为 UID 的词汇表,然后自己查找对象?