原型内容{(1}}和getRawSomething
方法之间有什么区别(例如ATNewsItem)?
例如,getSomething
和getRawImage
之间有什么区别?还是getImage
和getRawRelatedItems
?等
答案 0 :(得分:3)
getRaw*
为您提供存储在对象上的直接,未处理的原始数据。允许get*
方法根据需要以某种方式转换该数据。
例如,TextField
字段会在使用get
时将文本转换为安全的HTML,但getRaw()
会为您提供未转换的数据,即markdown,restructuredtext或未处理的HTML。
Archetypes有两种访问方法:
- 正常,
getSomething()
,过滤输出;- raw,即所谓的编辑访问器,
getRawSomething()
,不过滤输出。
如果要编辑字段的当前内容,请使用getRaw*
,在呈现内容时,使用get*
。
具体来说,相关项存储在引用字段中,getRaw()
方法返回对象UID,get()
方法返回对象,首先为您解析UID。
图像字段(如文件字段)将在关联的对象类型(图像字段为OFS.Image
)中包装数据(如果在使用.get()
时尚未使用该类型,但返回底层存储的任何内容) .getRaw()
。通常情况下,物体已被包裹。