Sequence of Sequence Widgets

×
×
Name and Title
Add Name and Title
Add Names and Titles

Captured

None

Code (show in context)

    @view_config(renderer='templates/form.pt', name='sequence_of_sequences')
    @demonstrate('Sequence of Sequence Widgets')
    def sequence_of_sequences(self):
        class NameAndTitle(colander.Schema):
            name = colander.SchemaNode(colander.String())
            title = colander.SchemaNode(colander.String())
        class NamesAndTitles(colander.SequenceSchema):
            name_and_title = NameAndTitle(title='Name and Title')
        class NamesAndTitlesSequences(colander.SequenceSchema):
            names_and_titles = NamesAndTitles(title='Names and Titles')
        class Schema(colander.Schema):
            names_and_titles_sequence = NamesAndTitlesSequences(
                title='Sequence of Sequences of Names and Titles')
        schema = Schema()
        form = deform.Form(schema, buttons=('submit',))
        outer = form['names_and_titles_sequence']
        outer.widget = deform.widget.SequenceWidget(min_len=1)
        outer['names_and_titles'].widget = deform.widget.SequenceWidget(
            min_len=1)
        return self.render_form(form)