'Determine the kind of input field and create a list of potential errors which may occur
during validation of that field. This list is returned to be displayed in \'$dirty\' state
if the field does not validate for that criteria.'

def get_field_errors(self, bound_field):

    errors = super(NgFormValidationMixin, self).get_field_errors(bound_field)
    if bound_field.is_hidden:
        return errors
    identifier = format_html(u"{0}['{1}']", self.form_name, self.add_prefix(bound_field.name))
    potential_errors = bound_field.field.get_potential_errors()
    errors.extend([SafeTuple((identifier, self.field_error_css_classes, u'$dirty', pe[0], u'invalid', force_text(pe[1]))) for pe in potential_errors])
    if (not isinstance(bound_field.field.widget, widgets.PasswordInput)):
        errors.append(SafeTuple((identifier, self.field_error_css_classes, u'$dirty', u'$valid', u'valid', u'')))
        if bound_field.value():
            errors.append(SafeTuple((identifier, self.field_error_css_classes, u'$pristine', u'$valid', u'valid', u'')))
    return errors
