2013-07-30 112 views
-1

我创建了名为“bdrMenuView”的browserView类。它应该像“class bdrMenuView(BrowserView):”一样。该类包含名为“createPictMenu”的方法。整个班级应该是从另一个类创建一个类的实例

class bdrMenuView(BrowserView): 
       def createPictMenu(self): 

现在我已经写了一个名为LogoViewlet的类。它应该像“class LogoViewlet(ViewletBase):”一样。并且该类包含名为“update”的方法。整个班级应该是

class LogoViewlet(ViewletBase): 
       def update(self): 

现在我想调用另一个类的browserView类的方法。我创建了一个类的实例,如

class LogoViewlet(ViewletBase): 
       def update(self): 
        a = bdrMenuView(self,BrowserView)  ---------> instance of BrowserView class 
        logoName = a.createPictMenu() 

我想知道它是正确的还是不是我创建的。

+0

我在邮件列表上看到您正试图从徽标视图中创建视图。这是一个错误。要制作菜单,您应该使用现有菜单portlet之一,或根据它们制作您自己的菜单。 –

+0

我想将默认的Plone徽标替换为我们的菜单。为此,我使用了默认的LogoViewlet。因为我称自己的班级方法。所以它将返回我们的菜单....所以,只有我必须调用我们自己的类方法从默认的LogoViewlet类... –

+0

哦,你想改变href链接点的位置?当你说你想“将徽标替换为我们的菜单”时,你是在说些什么? –

回答

0

不,这是不正确的,绝对没有意义。为什么你传入基类作为参数?请学习基本的Python。

视图参数是上下文和请求。从另一个视图(Viewlet所在的视图)中查看视图的最佳方法是遍历它。你可以用restrictedTraverse来做到这一点。

准确的代码取决于您的视图注册的内容。例如,如果您要查看的视图被称为@@bdrmenu并注册了任何内容,则可以使用self.context.restrictedTraverse('@@bdrmenu')查找该视图。

相关问题