在另一个 grok 视图中使用参数 self.context 和 self.request 实例化一个 "grok 视图"



我有一个网站产品,代码如下:

class AClass(grok.View):
    """ Code of AClass """
    pass
class BClass(AClass):
    """ Code of BClass with 'update' method defined """
    pass
class CClass(BClass):
    def update(self):
        self.panel = BClass(self.context, self.request)
        # more code     

我的疑问是为什么BClassCClass代码中实例化/调用两个参数(self.contextself.request)。BClass有一个没有其他参数的更新方法(只有self),没有显式的__init__方法。那么,在这种情况下,self.contextself.request的作用是什么?这是一种继承还是获得?

在我看到这个之后,我想我并没有完全理解Plone中无处不在的上下文和容器的概念。

既要从BClass派生子类,又要将BClass作为实例,这是没有意义的。我不明白self.panel = BClass(self.context, self.request)这行应该实现什么。

context和container绝不是无所不在的。上下文是你正在观看的对象。它是在类的__init__方法中设置的。容器是上下文的一个属性,通常是__parent__

最新更新