表单 – 如何在updateWidgets中修改z3c表单字段?

表单 – 如何在updateWidgets中修改z3c表单字段?,第1张

概述我试图基于HTTP get变量中包含的变量动态更新表单字段.特别是www.site.com/form?id=name.我想从url中提取’id’字段并自动填充表单的memberID字段. 我可以使用self.request.get(‘id’)访问get变量.但是我无法弄清楚如何更新表单字段.我检查了小部件文档http://packages.python.org/z3c.form/widget.ht 我试图基于http get变量中包含的变量动态更新表单字段.特别是www.site.com/form?ID=name.我想从url中提取’ID’字段并自动填充表单的memberID字段.

我可以使用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表单字段?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存