def generate_fields(self, form):
        field_list = []
        for i, name in enumerate(form.base_fields.keyOrder):
            
            # Transform the field.
            field = form.base_fields.get(name)
            FieldTransformer, extra_attributes = self.get_field_transformer(field)
            field_dict = FieldTransformer(field, extra_attributes).render()
            
            if 'title' not in field_dict or not field_dict['title']:
                field_dict['title'] = splitwords(name).title()
            
            # Transform the field's widget.
            widget = field.widget
            WidgetTransformer, extra_attributes = self.get_widget_transformer(widget)
            widget_dict = WidgetTransformer(widget, extra_attributes).render()
            
            field_dict.update(
                key = name,
                fieldOrder = i,
                widget = widget_dict,
            )
            
            field_list.append(field_dict)

        return field_list
    def get_meta(self, model):
        ops = model._meta

        meta_dict = dict(
            transformedFrom = 'AppEngine',
            modelClass = '.'.join([ops.app_label, ops.module_name]),
            verboseName = splitwords(ops.object_name).title(),
        )
        
        return meta_dict