我可以使用self.request.get(‘ID’)访问get变量.但是我无法弄清楚如何更新表单字段.我检查了小部件文档http://packages.python.org/z3c.form/widget.html,但没有一个建议有效.
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)
*更新:updateWidget未正确缩进.
解决方法 updateWidgets方法是正确的做法.只是你shouuld第一次调用“form.Form.updateWidgets”,然后做你的
更改(甚至更好的用户super()如下所示):
def updateWidgets(self): super(updateEmailForm,self).updateWidgets() ID = self.request.get('ID',None) if ID: self.Widgets["memberID"].value = ID.encode('utf-8')
所以基本上错误就是订单
如果没有请求(这有点奇怪,你可能正在做那些事情)那么你可以得到它via:
from zope.globalrequest import getRequestrequest = getRequest()总结
以上是内存溢出为你收集整理的表单 – 如何在updateWidgets中修改z3c表单字段?全部内容,希望文章能够帮你解决表单 – 如何在updateWidgets中修改z3c表单字段?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)