84 'FloatField': ['max_value', 'min_value'], |
84 'FloatField': ['max_value', 'min_value'], |
85 'DecimalField': ['max_value', 'min_value', 'max_digits', 'decimal_places'], |
85 'DecimalField': ['max_value', 'min_value', 'max_digits', 'decimal_places'], |
86 'DateField': ['input_formats'], |
86 'DateField': ['input_formats'], |
87 'DateTimeField': ['input_formats'], |
87 'DateTimeField': ['input_formats'], |
88 'TimeField': ['input_formats'], |
88 'TimeField': ['input_formats'], |
89 'RegexField': ['max_length', 'min_length'], # sadly we can't get the expr |
89 'RegexField': ['max_length', 'min_length'], # sadly we can't get the expr |
90 'EmailField': ['max_length', 'min_length'], |
90 'EmailField': ['max_length', 'min_length'], |
91 'URLField': ['max_length', 'min_length', 'verify_exists', 'user_agent'], |
91 'URLField': ['max_length', 'min_length', 'verify_exists', 'user_agent'], |
92 'ChoiceField': ['choices'], |
92 'ChoiceField': ['choices'], |
93 'FilePathField': ['path', 'match', 'recursive', 'choices'], |
93 'FilePathField': ['path', 'match', 'recursive', 'choices'], |
94 'IPAddressField': ['max_length', 'min_length'], |
94 'IPAddressField': ['max_length', 'min_length'], |
152 |
152 |
153 def __process(self, request, params, command=None): |
153 def __process(self, request, params, command=None): |
154 |
154 |
155 f = self.formcls(params) |
155 f = self.formcls(params) |
156 |
156 |
157 if command is None: # just validate |
157 if command is None: # just validate |
158 if not f.is_valid(): |
158 if not f.is_valid(): |
159 return {'success':False, 'errors': builderrors(f)} |
159 return {'success':False, 'errors': builderrors(f)} |
160 return {'success':True} |
160 return {'success':True} |
161 |
161 |
162 elif command.has_key('describe_errors'): |
162 elif command.has_key('describe_errors'): |
168 return describe_fields(f.fields, field_names) |
168 return describe_fields(f.fields, field_names) |
169 |
169 |
170 elif command.has_key('save'): |
170 elif command.has_key('save'): |
171 if not f.is_valid(): |
171 if not f.is_valid(): |
172 return {'success':False, 'errors': builderrors(f)} |
172 return {'success':False, 'errors': builderrors(f)} |
173 instance = f.save() # XXX: if you want more, over-ride save. |
173 instance = f.save() # XXX: if you want more, over-ride save. |
174 return {'success': True, 'instance': json_convert(instance) } |
174 return {'success': True, 'instance': json_convert(instance) } |
175 |
175 |
176 elif command.has_key('html'): |
176 elif command.has_key('html'): |
177 return {'success': True, 'html': f.as_table()} |
177 return {'success': True, 'html': f.as_table()} |
178 |
178 |