def _get_field(self, field_name: T.Text, field: forms.Field) -> interact.PromptLoop: label = self._make_label(field_name, field.label) while True: value = yield self._input_for_field(label, field) try: field.clean(value) except forms.ValidationError as e: for error in walk_errors(e): yield interact.Error(message=error) else: return value
def clean(self, value): value = self.to_python(value) return Field.clean(self,value)