作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Archetypes API 提供 default_method()
以编程方式填充初始值。
但是,由于这是一个类方法,它不适用于archetypes.schemaextender。扩展器的等效方法是什么?
最佳答案
如果没有 field.default 或 field.default_method,您可以使用 IFieldDefaultProvider 适配器。请参阅 Archetypes.Field.Field 类中的这段代码,getDefault 方法:
if not self.default:
default_adapter = component.queryAdapter(instance, IFieldDefaultProvider, name=self.__name__)
if default_adapter is not None:
return default_adapter()
还有 IFieldDefaultProvider:
class IFieldDefaultProvider(Interface):
"""Register a named adapter for your content type providing
this interface, with a name that is equal to the name of a
field. If no default or default_method is set on that field
explicitly, Archetypes will find and call this adapter.
"""
def __call__():
"""Get the default value.
关于plone - 原型(prototype).schemaextender : possible to have default_method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542486/
Archetypes API 提供 default_method() 以编程方式填充初始值。 但是,由于这是一个类方法,它不适用于archetypes.schemaextender。扩展器的等效方法是
我是一名优秀的程序员,十分优秀!