问题标签 [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 投票
2 回答
293 浏览

python - 如何覆盖 z3c.form 按钮操作处理程序?

默认的敏捷添加表单注册了保存按钮和处理程序,因此:

如何用我自己的处理程序覆盖(仅)处理程序?我宁愿只注册一些适配器,但如果注册子类自定义表单是唯一的选择,那么这也是可以接受的。

0 投票
0 回答
84 浏览

plone - 如何渲染带有独立子表单的 z3c.form 表单?

我想要一个页面上有多个独立的表单——在我的例子中,没有可提交的表单字段,而是每个子表单都有一些 HTML 内容,然后是一个按钮。主窗体没有按钮。

z3c.form 文档说需要一个自定义模板来呈现子表单。另一方面,显然 plone.z3c.form 包提供了一个默认的子表单模板并将其注册为可以使用的适配器。

如何使用默认(z3c.form 和/或 plone.z3c.form)模板来呈现带有子表单的表单?

0 投票
2 回答
79 浏览

plone - 如何在 z3c.form 的 DictionaryField 中使用注解

有关于使用 Python的文档dict with z3c.form(加载和存储表单数据)。

但是,z3c.form datamanager用于 dicts 没有为其他类型或接口注册(请参阅参考资料),而注解通常使用类似PersistentDict.

DictionaryField datamanager在这种情况下如何使用?IE。所以在我的表单getContent方法中,我只返回PersistentDict注释。

0 投票
2 回答
101 浏览

python - 如何以编程方式创建像 z3c.form 这样的详细事件?

我有一个简单的事件处理程序来查找实际更改的内容(它已为IObjectModifiedEvent事件注册),代码如下所示:

所以我的问题是:如何以编程方式生成这些描述?我到处都在使用 plone.app.dexterity,所以 z3c.form 在使用表单时会自动执行此操作,但我想用单元测试对其进行测试。

0 投票
1 回答
44 浏览

plone - ComponentLookupError 在基于 z3c.form 的表单 updateWidgets() 上引发

仅在从文件中删除<includeDependencies package="." />指令后,我才在运行测试时遇到此问题:configure.zcml

以前工作的相同版本;当前configure.zcml包括以下内容:

根据文档,由于迁移错误,这是一个已知问题,但事实并非如此。

我正在 Plone 4.2.6 下进行测试。正如您在 CI 构建中看到的那样,相同的代码在 Plone 4.3 下工作和测试通过。

0 投票
0 回答
255 浏览

plone - dict字段的z3c表单小部件

我正在尝试创建一个自定义小部件以用于 zope.schema.Dict 字段。键会自动从用户列表中提取,值将是选定词汇之一。我的大部分工作或多或少都在工作,但我的问题是保存表单时。我正在使用 plone.app.registry.browser.controlpanel.RegistryEditForm 视图,并且架构包含有问题的 Dict 字段。我收到以下错误:

我尝试创建一个转换器,但我显然做错了什么。

小部件代码:

转换器实际上还没有做任何事情。我不确定它需要做什么,但我在这些方法中放置了一个堆栈跟踪,它只是从一开始就没有被击中。我确实验证了提取代码将数据格式化为有意义的内容,并且应该满足我定义的字段。

zcml:

plone.supermodel.model.Schema 模式的摘录

如果我创建一个 plone.directives.form.SchemaForm ,我为 data['mypackage_dict'] 返回的值看起来很好,我可以将它保存到注册表中。不过,如果我能理解它试图转换的内容,我希望能够使用 controlpanel.RegistryEditForm 类来实现更多自动化。

克隆 4.2

0 投票
1 回答
439 浏览

validation - Plone - 如何让验证器根据特定内容类型的行为验证字段?

我正在使用 Plone 4.3,并且我有一个 form.SchemaForm plone.directives 有一个接口,该接口有一个来自 IEventBasic 的起始字段和一个验证器:

在我的类型文件(profiles/default/types 下的 my.object.myobject.xml)中,我将行为放在了行为部分中。

问题是它验证任何 Event 对象或任何实现 IEventBasic 接口/模式的对象中的 end 字段。

我想也许是因为 Plone 文档说 WidgetValueDiscriminators 的参数“视图”和“上下文”接受一个接口,那么我可以这样做:

或者

不幸的是,这些都没有触发。我想我误解了上下文和视图参数的实际作用。我怎样才能使验证器专门用于处理 MyObject?

资料来源:http ://docs.plone.org/develop/addons/schema-driven-forms/customising-form-b​​ehaviour/validation.html

现在我正在做:

更新 2:我之前删除了我的评论,因为它是针对一个不相关的问题。我改变了检查类型的方式。

0 投票
1 回答
60 浏览

plone - 扩展 Plone-Controlpanel 表单

是否可以使用每个插件扩展控制面板视图?

例如
ca.db.core -> 为数据库连接设置
ca.db.person 创建基本字段集/选项卡-> 如果已安装,则为“核心”设置添加一个新的字段集/选项卡,用于人员特定字段/设置
ca.db。 schema -> 如果已安装,还会为 schema.org 字段添加一个新的字段集/选项卡

0 投票
1 回答
189 浏览

workflow - 如何将敏捷行为字段的模式动态更改为只读?

collective.googlenews是一个包,它实现了一种行为,它确实向基于敏捷的内容类型添加了 2 个新字段。

其中一个字段(称为standout_journalism)有一些特殊要求,事实证明这些要求实施起来很复杂:

  • 任何网站在上周只能有 7 个项目被标记为突出
  • 要计数,并且项目必须声明为突出(布尔字段)并且必须发布

然后我必须实施 2 个不同的验证:

  • 在工作流程过渡时,避免在我们已经有 7 个时发布标记为突出的项目
  • 在编辑表单上,当我们已经有 7 个时,避免将已发布的项目标记为突出

我能够使用工作流防护和一个显示警告解释为什么禁用转换的视图来解决第一部分,但我不确定第二部分。

我创建了一个不变量,如果用户尝试更改已发布项目上的字段值,表单将返回错误。

问题是我们认为行为应该有所不同:我们希望避免在不应该允许将项目标记为突出时更改该字段的值(将其标记为只读)。

我应该创建自己的小部件吗?我应该重写update字段中的方法吗?我应该覆盖updateWidgets表单中的方法吗?

在任何情况下,我都不知道如何继续,因为文档不清楚添加的字段与行为一样。

非常感谢任何指向代码示例的指针。

0 投票
1 回答
205 浏览

widget - 如何覆盖或继承 z3c.form 小部件?

我需要覆盖分配给z3c.form上的字段的小部件的行为(特别是用于schema.Bool如下声明的字段的小部件)以更改小部件模式在不同条件下的工作方式: