[Zope3-Users] Form for list of lists

Cliff Ford Cliff.Ford at ed.ac.uk
Fri Apr 15 06:57:22 EDT 2005


Thanks (roger) for the tips. I was trying to use a single custom widget 
- taking that out gave the expected default behaviour. I needed a much 
more customised form, so after many false steps, and for the benefit of 
anyone else who needs to know this is what I did:

1. Put an 'update' method definition in the thingy content type 
Interface and Class Implementation.

2. Created a custom thingy Page Template for the edit form.

3. Used template="thingy_template.pt" and 
class="site.thingy.thingyClass" definitions in the editform 
configuration. (No custom widgets.)

Seems very simple! I guess the problem for the Zope 3 newcomer is 
knowing which bits if the framework to use and which to replace.

Cliff

Roger Ineichen wrote:
> Hi Cliff 
> 
> From: zope3-users-bounces at zope.org 
> 
>>[mailto:zope3-users-bounces at zope.org] On Behalf Of Cliff Ford
>>Sent: Thursday, April 14, 2005 9:43 AM
>>To: Zope3-users at zope.org
>>Subject: [Zope3-Users] Form for list of lists
>>
>>I have a list of lists that I need to manipulate with a form. I have 
>>figured out how to get the list elements into a form with a Page 
>>Template. However, the field names come out like this:
>>
>>0 field.listname.0. field.listname.1. field.listname.2.
>>1 field.listname.0. field.listname.1. field.listname.2.
>>2 field.listname.0. field.listname.1. field.listname.2.
>>...
>>
>>where the first integer is just the value of 
>>repeat/item/index and the 
>>first element represents listname[0][0].
>>
>>I have a widget derived from SimpleInputWidget to handle the form 
>>elements (all strings).
>>
>>I don't know how to get the updated form values back into the list of 
>>lists, or even the best/correct approach to this whole problem. Can 
>>anyone provide some pointers?
> 
> 
> Use the Field "List" in your interface for describe the list attribute.
> Then use the standard "editform" directive with the right schema and 
> all is handled by the form framework.
> 
> Then you should get values like:
> 
> field.list.0.name.0 field.list.0.name.1 field.list.0.name.2
> field.list.1.name.0 field.list.1name.1 field.list.1.name.2
> 
> 
> If you like to use a own edit form, you can call
> request.get('yourfieldname', None)
> for get a value. But make sure the fields have unique numbers.
> Right now it seams each row uses the same numbers. 
> 
> Regards
> Roger Ineichen
> 
> 
>>Cliff
>>
>>PS: Has yesterday's question from Dylan Reinhardt been answered 
>>off-list? I will be doing the same thing next and was 
>>interested in any 
>>answers.
>>_______________________________________________
>>Zope3-users mailing list
>>Zope3-users at zope.org
>>http://mail.zope.org/mailman/listinfo/zope3-users
>>
> 
> 


More information about the Zope3-users mailing list