On 2011-06-26 11:58:03 +0200, paradoxxjm said:
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)
updateWidgets method is the right place to do it.
just you shouuld first call "form.Form.updateWidgets" and then do your
changes (even better user super() as shown bellow)
def updateWidgets(self):
super(updateEmailForm, self).updateWidgets()
id = self.request.get('id', None)
if id:
self.widgets["memberID"].value = id.encode('utf-8')
so basically the error was the order
--
Rok Garbas, Plone Consulting
[email protected]
http://www.garbas.si
_______________________________________________
Product-Developers mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-product-developers