问题标签 [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.

0 投票
2 回答
247 浏览

plone - Plone - 无法在 Zope 管理界面的 plone_skins 的 plone_content 中复制和粘贴视图

我们使用的是 Plone 4.1.2,在 Zope 管理界面的 plone_skins 的 plone_content 中复制和粘贴视图时遇到问题。我们收到此错误消息:

非常感谢您的期待。

0 投票
1 回答
159 浏览

python - Zope 组件架构组件是否需要声明它实现的接口?

注意:我是ZCA的新手,所以代码可能不正确;但是,我对 ZCA 的工作方式有些熟悉。

举个例子:

是否需要这implements(I1)条线,或者 ZCA 可以自己弄清楚 U1 实现了 I1(有点像 Go 中的接口工作方式)?

0 投票
2 回答
291 浏览

python - 使用 zope.schema 定义循环引用

我正在尝试执行以下操作,定义两个实例相互引用的类,例如以下示例中的用户和组。一个用户可以属于多个组,一个组可以包含多个用户。实际数据存储在数据库中,使用外键是多对多关系的简单问题。完全没有问题。

之后数据通过 ORM 加载并存储在 python 对象的实例中。仍然没有问题,因为使用的 ORM (SQLAlchemy) 管理反向引用。

现在我想使用 zope.interface 和 zope.schema 检查 python 对象是否符合某些接口。这就是我遇到麻烦的地方。

我的问题是注释行。我无法使用 IUser 定义 IGroup,因为当时尚未定义 IUser。我找到了一种解决方法,在定义 IUser 之后完成 IGroup 的定义,但这根本不令人满意,因为 IUser 和 IGroup 是在不同的源文件中定义的,而 IGroup 的一部分是在定义 IUser 的文件中定义的。

使用 zope.schema 有什么合适的方法吗?

0 投票
1 回答
175 浏览

python - 我应该把接口通用的异常定义放在哪里?

在设计某些类时,我养成了使用 zope.interface 的习惯,这一切都很好,但我对异常有点不确定。我还没有看到任何文档谈论它们(尽管只是在粗略搜索之后)。首先,我想知道将某个接口的任何实现都通用的异常 X 放在哪里。

我总是可以将异常放在它自己的模块中。但是一个完整的模块可能是一个简单的例外?我不介意将它放在定义相关接口的同一个模块中,但我想知道这是否以某种方式被认为是不好的形式?

基本上,我想听听一些使用过接口并了解此约定的人的意见。

0 投票
2 回答
100 浏览

python - 为什么 zope.interface.Interface 的子类的子类不继承其父类名称?

例子:

如何让 IB.names() 也返回 IA 中定义的属性?

0 投票
1 回答
412 浏览

plone - 在 plone.app.registry 中存储字符串对

我需要在存储情侣的 Plone 控制面板中构建一个配置面板,并且我想在 Plone 3 上使用 plone.app.registry。


如果我将自己限制在用户界面上,那么定义一个自动构建的模式接口非常简单:

我们使用这是一个项目,将portal_properties 中的情侣作为单个字符串(带有分隔符)存储。


使用这种方法(使用“value_type=schema.Object”)和 plone.app.registry 我得到一个异常,因为 IObjectField 没有定义 IPersistent 适配器。

在深入并疯狂提供我自己的适配器之前:有一种更简单的方法可以满足我的问题的初始需求吗?

0 投票
1 回答
124 浏览

plone - 针对 plone.directives.form.Schema 查询适配器

我创建了一个表单模型,如下所示:

我想根据这个定义注册一个适配器:

注册正确。

但是,有一个问题我不知道 IFormSchema 是否由z3c.form处理链的任何点中的任何对象直接提供,因此我可以调用:

  • IFormSchema 是否直接应用于 z3c.form 或 plone.autoform 链的任何点中的某个对象(zope.interface.directlyProvides?)

  • 如果没有,推荐的做法是什么,以便我可以针对模型注册适配器?我应该做哪些类来实现这个接口?

更糟糕的是,问题中的上下文不是真正的内容项,而是子表单对象。

0 投票
1 回答
184 浏览

python - 如果使用嗅探器重新执行金字塔应用程序的测试将失败

我刚刚开始为一个金字塔网络应用程序建立并运行我的测试环境。我只有一些基本的测试,包括一些由金字塔贴纸模板创建的示例。如果我通过nosetest一切运行它们,一切正常。

如果我通过sniffer运行它们,第一次运行也可以正常工作。但是如果我更改我的代码并且嗅探器再次运行测试,我会得到以下堆栈跟踪:

在我的设置中,我有:

在我的拆解中:

导入时已经发生错误Configurator,所以我想我错过了一些重置一些内部的清理代码。但我不知道它可能是什么。任何提示都会非常受欢迎!

0 投票
2 回答
808 浏览

python - 在类声明中调用的函数如何?

有这个代码:

显然,调用zope.interface.implements以某种方式改变了类的属性和行为Foo

这是怎么发生的?如何在我的代码中使用这种方法?

示例代码是zope.interface模块的一部分。

0 投票
0 回答
120 浏览

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

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

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

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

这是测试代码:

错误信息:

这是我在堆栈跟踪中戳:

更新:

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