Archetypes内容(例如ATNewsItem)上的getRawSomething和getSomething方法有什么区别?

时间:2013-07-08 13:37:50

标签: plone archetypes

原型内容{(1}}和getRawSomething方法之间有什么区别(例如ATNewsItem)?

例如,getSomethinggetRawImage之间有什么区别?还是getImagegetRawRelatedItems?等

1 个答案:

答案 0 :(得分:3)

getRaw*为您提供存储在对象上的直接,未处理的原始数据。允许get*方法根据需要以某种方式转换该数据。

例如,TextField字段会在使用get时将文本转换为安全的HTML,但getRaw()会为您提供未转换的数据,即markdown,restructuredtext或未处理的HTML。

来自developer documentation

  

Archetypes有两种访问方法:

     
      
  • 正常,getSomething(),过滤输出;
  •   
  • raw,即所谓的编辑访问器,getRawSomething(),不过滤输出。
  •   

如果要编辑字段的当前内容,请使用getRaw*,在呈现内容时,使用get*

具体来说,相关项存储在引用字段中,getRaw()方法返回对象UID,get()方法返回对象,首先为您解析UID。

图像字段(如文件字段)将在关联的对象类型(图像字段为OFS.Image)中包装数据(如果在使用.get()时尚未使用该类型,但返回底层存储的任何内容) .getRaw()。通常情况下,物体已被包裹。