web.py的表单form中的radio乱码问题

根据 https://bugs.launchpad.net/webpy/+bug/130440 这里进行修改,

class Radio(Input):

    def __init__(self, name, args, *validators, **attrs):

        self.args = args

        super(Radio, self).__init__(name, *validators, **attrs)

 

    def render(self):

        x = '<span>'

        for arg in self.args:

            #if isinstance(arg, (tuple, list)):

   if type(arg) == tuple:

                value, desc= arg

            else:

                value, desc = arg, arg 

            attrs = self.attrs.copy()

            attrs['name'] = self.name

            attrs['type'] = 'radio'

            attrs['value'] = arg

            #if self.value == arg:

   

   if self.value==value: 

select_p=' checked="checked"'

   else:

select_p=''

 

 

                #attrs['checked'] = 'checked'

            #x += '<input %s/> %s' % (attrs, net.websafe(desc))

   #net.websafe(arg),select_p,self.addatts(),net.websafe(arg)

   radio_id = net.websafe(self.name)+'_'+net.websafe(value)

   x += '<input type="radio" name="%s" id="%s" value="%s" %s/><label for="%s"> %s</label>' % (net.websafe(self.name), radio_id, net.websafe(value), select_p, self.addatts(), net.websafe(desc))

        x += '</span>'

        return x

你可能感兴趣的:(webpy,form.radio)