Marco Mariani wrote:
> In chapter 5.4 of the cooking book, Philipp says:
>> [...] We could now implement a custom factory, for example one that
>> allows us to set initial attribute values of the recipe. (We would
>> normally extend the Recipe class with a constructor to do that, but
>> let us implement a factory here for demonstration purposes.)

Note that this particular example of a custom factory is a bad example.
It has been argued that factories should preferrably not take arguments.
If they did take certain (required) arguments, then they would be
implying a contract that isn't explicitly stated in an interface.

> How should I write the constructor? I've tried the naive __init__ method
> but I must be missing something, as it doesn't get passed any argument.
> For instance, I'd like to have an attribute recipe.creation_date which
> is editable in the addform but has as a default
> value.

I presume, this is what you want:

  class Recipe(Persistent):

    def __init__(self):
        self.creation_date =


Zope3-users mailing list

Reply via email to