我是导入内容到Plone使用一个变形管道,为了修复各种方面,如图像,链接和相关内容,我需要运行我的部分刚刚创建和索引的所有内容。
我需要这样做,因为我想使用目录工具,以便按路径搜索内容,并使用它的UUID来引用它。
是否可以使用变形器,或者使用任何其他可用的技术,比如简单的升级步骤?
我正在考虑使用类似于源部分的模式:
from collective.transmogrifier.interfaces import ISection
from collective.transmogrifier.interfaces import ISectionBlueprint
class DoSomethingAtTheVeryEndSection(object):
classProvides(ISectionBlueprint)
implements(ISection)
def __init__(self, transmogrifier, name, options, previous):
self.previous = previous
def __iter__(self):
for item in self.previous:
yield item
for item in self.previous:
do_something()这是个好主意吗
发布于 2015-07-29 14:14:56
是的,创建一个PostProcess部分是个好主意,唯一的问题是不能以这种方式调用self.previous生成器2次。
解决方法是使用itertools.tee复制生成器,这样您就可以进入生成器两次:
from collective.transmogrifier.interfaces import ISection
from collective.transmogrifier.interfaces import ISectionBlueprint
import itertools
class DoSomethingAtTheVeryEndSection(object):
classProvides(ISectionBlueprint)
implements(ISection)
def __init__(self, transmogrifier, name, options, previous):
self.previous = previous
def __iter__(self):
self.previous, self.postprocess = itertools.tee(self.previous)
for item in self.previous:
yield item
for item in self.postprocess:
do_something()https://stackoverflow.com/questions/31570498
复制相似问题