Changeset 1417
- Timestamp:
- 11/24/05 20:02:53 (3 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/new-admin/django/core/formfields.py
r1345 r1417 25 25 if field.field_name == field_name: 26 26 return field 27 raise KeyError, "Field %s not found\n%s" % (field_name, repr(self.fields)) 27 raise KeyError, "Field %s not found\n%s" % (field_name, repr(self.fields)) 28 28 29 29 def __delitem__(self, field_name): … … 99 99 prepopulated data and validation error messages to the formfield objects. 100 100 """ 101 def __init__(self, manipulator, data, error_dict, edit_inline =True):101 def __init__(self, manipulator, data, error_dict, edit_inline=True): 102 102 self.manipulator, self.data = manipulator, data 103 103 self.error_dict = error_dict 104 104 self._inline_collections = None 105 105 self.edit_inline = edit_inline 106 106 107 107 def __repr__(self): 108 108 return repr(self.__dict__) … … 110 110 def __getitem__(self, key): 111 111 for field in self.manipulator.fields: 112 113 112 if field.field_name == key: 114 113 data = field.extract_data(self.data) … … 119 118 if inline_collection.name == key: 120 119 return inline_collection 121 raise KeyError ("Could not find Formfield or InlineObjectCollection named:%s" % key )122 123 def fill_inline_collections(self): 120 raise KeyError, "Could not find Formfield or InlineObjectCollection named %r" % key 121 122 def fill_inline_collections(self): 124 123 if not self._inline_collections: 125 124 ic = [] … … 152 151 "Renders the field" 153 152 return str(self.formfield.render(self.data)) 154 155 153 156 154 def __repr__(self): … … 195 193 errors = [] 196 194 for field in self.formfield_dict.values(): 197 if (hasattr(field, 'errors')):195 if hasattr(field, 'errors'): 198 196 errors.extend(field.errors()) 199 197 return errors 200 198 201 199 def has_errors(self): 202 return bool(len(self.errors())) 203 200 return bool(len(self.errors())) 201 204 202 def html_combined_error_list(self): 205 return ''.join( [field.html_error_list() for field in self.formfield_dict.values() if hasattr(field, 'errors')])203 return ''.join([field.html_error_list() for field in self.formfield_dict.values() if hasattr(field, 'errors')]) 206 204 207 205 class InlineObjectCollection: 208 "An object that acts like a list of form field collections." 209 def __init__(self, parent_manipulator, rel_obj, data, errors):210 self.parent_manipulator = parent_manipulator 206 "An object that acts like a list of form field collections." 207 def __init__(self, parent_manipulator, rel_obj, data, errors): 208 self.parent_manipulator = parent_manipulator 211 209 self.rel_obj = rel_obj 212 210 self.data = data 213 211 self.errors = errors 214 self._collections = None 212 self._collections = None 215 213 self.name = rel_obj.name 216 214 217 215 def __len__(self): 218 self.fill() 216 self.fill() 219 217 return self._collections.__len__() 220 218 221 219 def __getitem__(self, k): 222 220 self.fill() … … 237 235 def fill(self): 238 236 if self._collections: 239 return 237 return 240 238 else: 241 239 var_name = self.rel_obj.opts.object_name.lower() 242 240 wrapper = [] 243 orig = hasattr(self.parent_manipulator, 'original_object') and self.parent_manipulator.original_object or None 241 orig = hasattr(self.parent_manipulator, 'original_object') and self.parent_manipulator.original_object or None 244 242 orig_list = self.rel_obj.get_list(orig) 245 243 for i, instance in enumerate(orig_list): 246 collection = {'original': instance }244 collection = {'original': instance} 247 245 for f in self.rel_obj.editable_fields(): 248 246 for field_name in f.get_manipulator_field_names(''): … … 307 305 d = new_data.getlist(self.field_name) 308 306 try: 309 converted_data = [self.__class__.html2python(data) 310 for data in d] 307 converted_data = [self.__class__.html2python(data) for data in d] 311 308 except ValueError: 312 309 converted_data = d … … 361 358 362 359 class PasswordField(TextField): 363 input_type ="password"360 input_type = "password" 364 361 365 362 class LargeTextField(TextField): … … 410 407 return False 411 408 html2python = staticmethod(html2python) 412 413 409 414 410 class SelectField(FormField): … … 587 583 field_name = '%s%s' % (self.field_name, value) 588 584 output.append('<li><input type="checkbox" id="%s" class="v%s" name="%s"%s /> <label for="%s">%s</label></li>' % \ 589 ( get_id() + value , self.__class__.__name__, field_name, checked_html,590 get_id() + value, choice))585 (self.get_id() + value , self.__class__.__name__, field_name, checked_html, 586 self.get_id() + value, choice)) 591 587 output.append('</ul>') 592 588 return '\n'.join(output)
