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

plone - 如何将硬编码的页面模板引用转换为 plone.app.z3cform 中的类属性以允许 z3c.jbot 覆盖

该文件plone/app/z3cform/templates.py包含以下对页面模板文件的引用plone/app/z3cform/templates/widget.pt

我希望这可以解释为什么plone/app/z3cform/templates/widget.pt不选择覆盖的原因z3c.jbot,这取决于页面模板是类属性。

如果是这样,我很高兴尝试进行并提交所需的更改以允许widget.pt通过覆盖z3c.jbot,但我不知道从哪里开始查看需要做什么来制作这两个文件名类属性,尤其是 Zopish/Plonish 方式。所以有几个问题。首先,这确实是问题吗?而且,如果是这样,如何正确地将这些硬编码引用转换为类属性(类RenderWidgetRenderSingleCheckboxWidget?)

0 投票
1 回答
107 浏览

plone - Overriding CalendarDateConverter in z3c.form

z3c.form registers a converter like this:

Is it possible to override this converter in Plone using overrides.zcml? What kind of input one needs to give for overrides.zcml to override it? Should one copy interface matching definitons from .py code:

Any other non-monkey-patching means to override z3c.converters?

0 投票
0 回答
120 浏览

z3c.form - 在测试环境中查找小部件管理器时引发 ComponentLookupError

我正在尝试使用 z3c.forms 开发一个新的小部件,并且我已经到了可以进行功能测试的地步。

不幸的是,当我使用表单设置测试时,当调用 updateWidgets 时会为 IWidgets 接口引发 ComponentLookupError,它应该只是从 z3c.form.field 中查找 FieldWidgets

我猜我没有在测试设置中正确注册 z3c.form,但我不知道如何修复它。

这是测试代码:

错误信息:

这是我在堆栈跟踪中戳:

更新:

我还尝试在实例化 Sample 表单之前显式注册接口,但这并没有帮助,并且 ComponentLookupError 再次引发。

0 投票
0 回答
237 浏览

plone - getMultiAdapter 失败并出现 ComponentLookupError

我有一个代码可以使用 get multi 适配器查找 iterface。传递给多适配器的元素成员之一是提供该接口,但不提供元素本身。

我无法控制传递给多适配器的内容,但我可以控制包含其中一个元素的元素。我该如何标记它?通知多适配器那里有一些有用的东西,是否有类似provideAdapterFactory(cls, interface)的东西?

代码示例:

声明

抬头

现在,如果我像这样运行代码,它将产生ComponentLookupError,同时我无法修改查找代码或多适配器,或者就此而言,我无法将 'implements(IMarker) 分配给 Parent,因为 parent 已经实现了不同的接口和会破坏很多其他的东西。

更新:

我想我已经从第 6.1 章多适配器中找到了一个我可以理解的解释

更新 2:我认为我没有在我的单元测试代码中正确初始化 zca,这是一个片段

0 投票
1 回答
239 浏览

plone - 未设置 SimpleTerm 标题

我有一个带有 a 的表单SelectFieldWidget,它目前正在使用静态词汇,基本上是这样的:

词汇表被分配给表单模式中的字段:

然后使用 & 对模式进行序列化plone.supermodel,然后在表单需要时反序列化(这是为了另一个要求)。

该表单使用自定义的手写模板,我正在添加tal语句以生成选择字段选项。我原以为我可以通过引用表单上的小部件来做到这一点,但是当我这样做时,我遇到了一个问题:

None当通过小部件访问时,标题就在术语上。我试过通过词汇表来查找它:

但同样,它是None。但是,它存在于原始词汇对象中的术语:

因此,虽然我可以直接使用源词汇对象来提供模板所需的值,但计划是让这个词汇最终成为动态的,此时我希望我需要询问小部件本身。

我在这里做错了什么,为什么没有定义标题?

0 投票
1 回答
447 浏览

plone - Plone 4 敏捷视图表单 - 将 css 类添加到字段集 X 中的小部件

我有一个基于灵活性的内容类型,在架构中定义了不同的编辑视图和字段集。每当我想更新第一个字段集中的小部件/字段时,它就会变得很糟糕。例如:

必须用于隐藏my_field第二字段集。使相同的字段成为必填项

成功了。

但是,如何将 css 类添加到第一个字段集以外的另一个小部件?我的意思是,什么

如果我的小部件位于第一个字段集“页面”上,就可以了。

0 投票
1 回答
143 浏览

plone - 如何为 z3cform 创建一个新的 contenttreewidget

我正在尝试覆盖用于相关项目的小部件(敏捷性所以 z3cform),它是 from plone.formwidget.contenttree.widget import MultiContentTreeWidget

我遇到的问题是我不明白为什么我的示例尝试找到 IDataConverter 的组件,其中没有用于 contenttree 小部件的 IDataConverter 并且它是父级。

代码是:

和zcml:

如果我正在尝试小部件,我有以下回溯:

您可以在 github 上找到存储库:https ://github.com/toutpt/collective.z3cform.html5widgets

0 投票
1 回答
146 浏览

plone - 将 z3cform 向导呈现为独立视图

Plone/Zope 的 z3cforms继承自 BrowserPage,因此应该能够在不使用额外的 View 和 View Class 的情况下呈现。当我尝试这样做时,表单呈现正常,但表单的字段都没有出现。我正在尝试解决为什么会发生这种情况。请记住,这个示例使用了collective.z3cform.wizard,它本质上提供了两个类,一个Wizard 和一个Step。Wizard 是一个Form(大写 F),它主要提供将 Step 粘合在一起并通过会话保持状态的机制,而Step 只是一个 Form

对我来说,感觉要么宏不正确,上下文错误,要么需要对表单进行一些包装/展开。基本上,我觉得我缺少一些神奇的代码行或一条信息,这通常是 Plone 的情况。

当表单被连接以使用单独的视图(这是多余的)时,表单可以很好地呈现所有字段。

因为我知道这很复杂,所以我在 GitHub 上构建了一个仅示例的独立包来展示这个问题。如果您将此软件包安装到带有 buildout 的股票 Plone 站点中,您将获得三个视图:

工作视图需要一个单独的视图和一个完整的模板包装 TAL 标签,这既是杂乱无章的又是多余的……但它可以工作并呈现带有所有字段的表单。

损坏的视图按照应有的方式连接起来,表单实例代表视图本身,模板Wizard 类中定义

几乎视图与断开视图相同,只是模板与向导的步骤相关联,而不是与向导本身相关联。这会导致渲染中断,但表单会使用其所有字段进行渲染。

我希望有人可以帮助我追查为什么损坏的视图会呈现表单,并带有按钮,但没有表单的字段。

先感谢您。

0 投票
1 回答
94 浏览

plone - z3c.form 问题:ImportError: No module named ptcompat

最近有 z3c.form API 更改。我尝试执行以下操作:

我得到:

怎么修?

0 投票
2 回答
515 浏览

plone - 在 z3c.form 表单操作处理程序中注入字段错误

我有一个 z3c.form 在执行表单操作之前无法知道一些错误。我想在字段上显示这些错误,而不是在全局表单状态消息中。Form.update() 中的小部件如何构造和注入错误?

例子: