У меня есть сайт продукта с кодом, как это:инстанцировать «вид» обращал внимания с self.context параметрами и self.request в другой точке зрения ГРОК
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
мои сомнения, почему BClass
является Instantiate/называется в CClass
код с двумя параметрами (self.context
и self.request
). BClass
имеет метод обновления без других параметров (только self
) и не имеет метода __init__
явно. Итак, какова функция self.context
и self.request
в этом случае? Это какое-то наследство или приобретение?
После этого я увидел это, я думаю, так что я не полностью понял вездесущие понятия контекста и контейнера в Plone.
Спасибо, @Lennart Regebro! Я никогда не создавал groqu View с параметрами раньше. Я взглянул на документацию grok (http://grok.zope.org/doc/1.5/reference/components.html#grok.View) и увидел, что 'grok.View' действительно принимает' self.context' и ' self.request' как «конструктор». Обычно я всегда создаю 'grok.View' без параметров и никогда не работал с этим случаем создания экземпляра представления внутри другого. Это хороший образец? Большое спасибо и извините за мой неясный вопрос. –
@LeonardoAndrade: Очень редко вам нужно создавать экземпляры. Я предполагаю, что всякий раз, когда вы создаете представление, вы делаете что-то неправильно. Представления создаются экземплярами объектов. –