[Product-Developers] How to modify a z3c form field in updateWidgets?

paradoxxjm mamcnaughton at gmail.com
Sun Jun 26 09:58:03 UTC 2011


I am trying to dynamically update a form field based on a variable that is
included in a HTTP get variable. Specifically www.site.com/form?id=name. I
want to pull the 'id' field from the url and automatically populate the
memberID field of the form.

I have access to the get variable using self.request.get('id'). However I
haven't been able to figure out how to update the form field. I examined the
widget documentation http://packages.python.org/z3c.form/widget.html but
none of the suggestions have worked.

class IUpdateEmailFormSchema(interface.Interface):
    # -*- extra stuff goes here -*-
    """
    """
    memberID = schema.TextLine(title=(u'Member id'))

    email = schema.TextLine(title=(u'Email'), description=(u'The email'))

class updateEmailForm(form.Form):
    fields = field.Fields(IUpdateEmailFormSchema)
    label = _(u'Change Email')
    ignoreContext = True


    @button.buttonAndHandler(u'Update')
    def handleUpdate(self,action):
        data, errors = self.extractData()

        if data.has_key('email'):

            portal_membership = getToolByName(self.context,
'portal_membership')
            member = portal_membership.getMemberById(data['memberID'])

def updateWidgets(self):
        print "This is update widget \n\n"
        import pdb; pdb.set_trace()
        print self.request.form['id']    #Does not work as specified in
http://packages.python.org/z3c.form/widget.html
        #self.widgets["memberID"].value =
self.request.get('id').encode('utf-8')
        form.Form.updateWidgets(self)

updateEmailFormView = wrap_form(updateEmailForm)


--
View this message in context: http://plone.293351.n2.nabble.com/How-to-modify-a-z3c-form-field-in-updateWidgets-tp6516889p6516889.html
Sent from the Product Developers mailing list archive at Nabble.com.


More information about the Product-Developers mailing list