问题标签 [zope.interface]
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.
plone - Plone - 无法在 Zope 管理界面的 plone_skins 的 plone_content 中复制和粘贴视图
我们使用的是 Plone 4.1.2,在 Zope 管理界面的 plone_skins 的 plone_content 中复制和粘贴视图时遇到问题。我们收到此错误消息:
非常感谢您的期待。
python - Zope 组件架构组件是否需要声明它实现的接口?
注意:我是ZCA的新手,所以代码可能不正确;但是,我对 ZCA 的工作方式有些熟悉。
举个例子:
是否需要这implements(I1)
条线,或者 ZCA 可以自己弄清楚 U1 实现了 I1(有点像 Go 中的接口工作方式)?
python - 使用 zope.schema 定义循环引用
我正在尝试执行以下操作,定义两个实例相互引用的类,例如以下示例中的用户和组。一个用户可以属于多个组,一个组可以包含多个用户。实际数据存储在数据库中,使用外键是多对多关系的简单问题。完全没有问题。
之后数据通过 ORM 加载并存储在 python 对象的实例中。仍然没有问题,因为使用的 ORM (SQLAlchemy) 管理反向引用。
现在我想使用 zope.interface 和 zope.schema 检查 python 对象是否符合某些接口。这就是我遇到麻烦的地方。
我的问题是注释行。我无法使用 IUser 定义 IGroup,因为当时尚未定义 IUser。我找到了一种解决方法,在定义 IUser 之后完成 IGroup 的定义,但这根本不令人满意,因为 IUser 和 IGroup 是在不同的源文件中定义的,而 IGroup 的一部分是在定义 IUser 的文件中定义的。
使用 zope.schema 有什么合适的方法吗?
python - 我应该把接口通用的异常定义放在哪里?
在设计某些类时,我养成了使用 zope.interface 的习惯,这一切都很好,但我对异常有点不确定。我还没有看到任何文档谈论它们(尽管只是在粗略搜索之后)。首先,我想知道将某个接口的任何实现都通用的异常 X 放在哪里。
我总是可以将异常放在它自己的模块中。但是一个完整的模块可能是一个简单的例外?我不介意将它放在定义相关接口的同一个模块中,但我想知道这是否以某种方式被认为是不好的形式?
基本上,我想听听一些使用过接口并了解此约定的人的意见。
python - 为什么 zope.interface.Interface 的子类的子类不继承其父类名称?
例子:
如何让 IB.names() 也返回 IA 中定义的属性?
plone - 在 plone.app.registry 中存储字符串对
我需要在存储情侣的 Plone 控制面板中构建一个配置面板,并且我想在 Plone 3 上使用 plone.app.registry。
如果我将自己限制在用户界面上,那么定义一个自动构建的模式接口非常简单:
我们使用这是一个项目,将portal_properties 中的情侣作为单个字符串(带有分隔符)存储。
使用这种方法(使用“value_type=schema.Object”)和 plone.app.registry 我得到一个异常,因为 IObjectField 没有定义 IPersistent 适配器。
在深入并疯狂提供我自己的适配器之前:有一种更简单的方法可以满足我的问题的初始需求吗?
plone - 针对 plone.directives.form.Schema 查询适配器
我创建了一个表单模型,如下所示:
我想根据这个定义注册一个适配器:
注册正确。
但是,有一个问题我不知道 IFormSchema 是否由z3c.form
处理链的任何点中的任何对象直接提供,因此我可以调用:
IFormSchema 是否直接应用于 z3c.form 或 plone.autoform 链的任何点中的某个对象(zope.interface.directlyProvides?)
如果没有,推荐的做法是什么,以便我可以针对模型注册适配器?我应该做哪些类来实现这个接口?
更糟糕的是,问题中的上下文不是真正的内容项,而是子表单对象。
python - 如果使用嗅探器重新执行金字塔应用程序的测试将失败
我刚刚开始为一个金字塔网络应用程序建立并运行我的测试环境。我只有一些基本的测试,包括一些由金字塔贴纸模板创建的示例。如果我通过nosetest
一切运行它们,一切正常。
如果我通过sniffer运行它们,第一次运行也可以正常工作。但是如果我更改我的代码并且嗅探器再次运行测试,我会得到以下堆栈跟踪:
在我的设置中,我有:
在我的拆解中:
导入时已经发生错误Configurator
,所以我想我错过了一些重置一些内部的清理代码。但我不知道它可能是什么。任何提示都会非常受欢迎!
python - 在类声明中调用的函数如何?
有这个代码:
显然,调用zope.interface.implements
以某种方式改变了类的属性和行为Foo
。
这是怎么发生的?如何在我的代码中使用这种方法?
示例代码是zope.interface模块的一部分。
z3c.form - 在测试环境中查找小部件管理器时引发 ComponentLookupError
我正在尝试使用 z3c.forms 开发一个新的小部件,并且我已经到了可以进行功能测试的地步。
不幸的是,当我使用表单设置测试时,当调用 updateWidgets 时会为 IWidgets 接口引发 ComponentLookupError,它应该只是从 z3c.form.field 中查找 FieldWidgets
我猜我没有在测试设置中正确注册 z3c.form,但我不知道如何修复它。
这是测试代码:
错误信息:
这是我在堆栈跟踪中戳:
更新:
我还尝试在实例化 Sample 表单之前显式注册接口,但这并没有帮助,并且 ComponentLookupError 再次引发。