def read_form_data(self):
        if self.processed_data:
            raise exceptions.AlreadyProcessed('The data has already been processed for this form')
        if self.readonly:
            return
        if request.method == self.method:
            if self.method == 'POST':
                data = request.form
            else:
                data = request.args
            if self.submitted_hidden_input_name in data:
                self.processed_data = True
                for field in self.all_fields:
                    if field.readonly:
                        pass
                    else:
                        field.extract_value(data)
                        if not field.validate():
                            log.debug('Validation error in field \'%s\': %s' % (field.name, field.error))
                            self.has_errors = True