On Feb 17, 2006, at 6:42 PM, Shaun Cutts wrote:
On Behalf Of Garanin Michael
What is mixin? Is it content-object or view?
Well, I think in the wider python context "mixin" is something that
can use as a base class to extend the functionality of your class,
assuming you provide some standard interface. (e.g.
I'm not sure whether zope uses "mixin" exactly like this,
or whether it
extends "mixin" for something that you don't have to have in the class
hierarchy, but acts as if it were because of traversal (so perhaps: An
instance is give a special base class of its own that defines
__getattr__ and uses it to search for missing methods in the wider
context? I don't know but I'm a bit wary of the traversals without
study. They seem to be playing with normal python resolution in a way
that isn't clear to me.)
In this case, I got the term from the ++apidoc++ for the zcml
A class to provide custom widget definitions or methods to be used by
This class is used as a mix-in class. As a result, it needn't
special classes, such as BrowserView.
And so, my "mixin" is indeed a view... or at least, it acts like a
But I'm a bit hazy on how it is actually constructed and "where" it is
wrt the EditView object. Is the factory (the class I pass in
editform.class) passed in "bases" to SimpleViewClass(... ) in
zope.app.forms.browser.editview.EditViewFactory? Then the EditView and
my mixin are both bases of a specially constructed BrowserView
Yes, constructed dynamically by the magic editform zcml. This is
precisely the sort of magic that many folks dislike in some of the
zcml directives. We are trying to move away from it, and formlib
lets you, in this particular case.
Zope3-users mailing list