我有一个在Zope3zcml中工作的python类,但我想把python移到一个独立的脚本中,可以通过类似于tal:content='context/get_tags‘的内容来访问它。这是原样的代码:
class TagListView(BrowserView):
def getCategories(self):
categories = set()
for cat in self.portal_catalog.uniqueValuesFor('Subject'):
categories.add(cat.lower())
for cat in self.__mapping:
categories.add(cat.lower())
return tuple(sorted(categories))
def getSynonyms(self,category):
r = self.__mapping.get(category)
if r is None:
return ()
return r[0]
def __init__(self,context,request):
self.context = context
self.request = request
self.tool = self.context.portal_categories
def entries(self):
taglist = '(['
for category in self.tool.getCategories():
taglist = taglist + '\'' + category + '\','
for synonym in self.tool.getSynonyms(category):
if len(synonym) > 0:
taglist = taglist + '\'' + synonym + '\','
taglist = taglist + '])'
return taglist不是很好(因为你可能已经猜到程序员不是我的职称),但这就是我所拥有的。如何将其转换为独立脚本?
发布于 2009-12-22 20:22:16
您可以使用@@语法:context/@@viewname从页面模板访问视图:
tal:define="view context/@@get_tags;
entries view/entries;"https://stackoverflow.com/questions/1945812
复制相似问题