@view_config(renderer="templates/form.pt", name="select_with_deferred")
    @demonstrate("Select Widget (with deferred choices and default)")
    def select_with_deferred(self):
        @colander.deferred
        def deferred_choices_widget(node, kw):
            choices = kw.get("choices")
            return deform.widget.SelectWidget(values=choices)
        @colander.deferred
        def deferred_default(node, kw):
            return kw["default"]
        class Schema(colander.Schema):
            pepper = colander.SchemaNode(
                colander.String(),
                default=deferred_default,
                widget=deferred_choices_widget,
            )
        choices = (
            ("", "- Select -"),
            ("habanero", "Habanero"),
            ("jalapeno", "Jalapeno"),
            ("chipotle", "Chipotle"),
        )
        schema = Schema().bind(choices=choices, default="jalapeno")
        form = deform.Form(schema, buttons=("submit",))
        return self.render_form(form)