I'm looking into formlib and display widgets. If anyone on the list has an 
example, I'd love to see it. The following Objects of List example works 
perfectly for edit view. For the display view it shows the AddressBook schema 
fine, but shows the Person schema edit form. I've googled all day, but have 
failed to come up with anything. Any help on this is appreciated. Thanks.

Kevin Smith

PS: Stephen, thanks for your feedback on mapDictToSchema



browser.py

person_widget = CustomWidgetFactory(ObjectWidget, Person)
persons_widget = CustomWidgetFactory(ListSequenceWidget, 
subwidget=person_widget)



class EditFormView(form.EditForm):
    form_fields = form.Fields(IAddressBook, render_context=True)
    form_fields['persons'].custom_widget = persons_widget


class DisplayFormView(form.DisplayForm):
    form_fields = form.Fields(IAddressBook, for_display=True)
    form_fields['persons'].custom_widget = persons_widget


app.py


class IPerson( interface.Interface ):

    first = schema.TextLine( title=u"firstname" )

    last = schema.TextLine( title=u"lastname" )



class Person( Persistent ):

    interface.implements( IPerson )



    def __init__( self, first='', last='' ):

        self.first, self.last = first, last



    first= ''

    last= ''



class IAddressBook( interface.Interface ):

    title = schema.TextLine( title=u'Title', required=False )



    persons = schema.List( title=u'Persons',

                          value_type=schema.Object( IPerson, title=u'person' ),

                          required=False )



class AddressBook( Persistent ):

    interface.implements( IAddressBook )



    def __init__( self, title="My Address Book" ):

        # create a default title

        self.title=title



    title = ''

    # don't forget to make lists persistent

    persons = PersistentList()





_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to