[Grok-dev] Re: z3c.form

Toni Mueller support at oeko.net
Tue Jul 15 16:22:32 EDT 2008


Hi Tim,

thanks for answering!

On Tue, 15.07.2008 at 21:09:25 +0200, Tim Terlegård <tim.terlegard at valentinewebsystems.se> wrote:
> On Jul 15, 2008, at 8:17 PM, Toni Mueller wrote:
>> I find it non-obvious how to use z3c.form. There's a simple example of
>> how to make an "AddForm" in the docs
> Did you also see z3c.formdemo?

not yet. For this and similar reasons, I added a precautionary
footnote.

>> My playground app currently looks like this:
>>
>> class MyApp(grok.Application, grok.Container):
>>    grok.traversable('add')
>>
>>    def traverse(self, name):
>>        if name == 'add':
>> 	    return MyAddForm()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This goee BOOOM!, as does
   	    return MyAddForm(None, self.request)

>> 	else:
>> 	    raise NotImplementedError
>>
> I haven't used z3c.form myself, but i would except AddForm to be a view,
> that means the constructor wants a context and a request.
> ...
> so MyAddForm(self.context, self.request) would perhaps work better.

You mean, in the traverse() method, where it crashes?

I tried that, but didn't succeed because there is no request attribute
to self. That's when I dug out pdb.

> I don't think it causes the error, but you don't need  
> grok.traversable('add').
> grok.traversable('attr') makes the 'attr' attribute on the class/object
> traversable. But you don't have any 'add' attribute in your code. The
> traverse() method works without that.

Hmmm. I didn't try that, but at least, while I don't need any of these
in the current Grok, automatic traversal appears to be broken when I
try to use z3c.form.


Kind regards,
--Toni++


More information about the Grok-dev mailing list