@@ -106,7 +106,7 @@ def get(self, i, default=None):
106106 return default
107107
108108 def _get_d (self ): #@@ should really be form.attr, no?
109- return utils .storage ([(i .name , i .value ) for i in self .inputs ])
109+ return utils .storage ([(i .name , i .get_value () ) for i in self .inputs ])
110110 d = property (_get_d )
111111
112112class Input (object ):
@@ -148,6 +148,9 @@ def validate(self, value):
148148 def set_value (self , value ):
149149 self .value = value
150150
151+ def get_value (self ):
152+ return self .value
153+
151154 def render (self ):
152155 attrs = self .attrs .copy ()
153156 attrs ['type' ] = self .get_type ()
@@ -281,7 +284,8 @@ def __init__(self, name, *validators, **attrs):
281284 Input .__init__ (self , name , * validators , ** attrs )
282285
283286 def get_default_id (self ):
284- return self .name + '_' + self .value .replace (' ' , '_' )
287+ value = self .value or ""
288+ return self .name + '_' + value .replace (' ' , '_' )
285289
286290 def render (self ):
287291 attrs = self .attrs .copy ()
@@ -297,6 +301,9 @@ def set_value(self, value):
297301 if value :
298302 self .checked = True
299303
304+ def get_value (self ):
305+ return self .checked
306+
300307class Button (Input ):
301308 def __init__ (self , name , * validators , ** attrs ):
302309 super (Button , self ).__init__ (name , * validators , ** attrs )
0 commit comments