pass
+class FieldError(ModelError):
+ """A ModelError on a specific field."""
+
+ def __init__(self, *args, field=None):
+ self.field = field
+ super().__init__(*args)
+
+ def __str__(self):
+ message = super().__str__()
+ return f"{self.field.name}: {message}"
+
+
class MultipleObjectsReturned(ModelError):
pass
Message, MessageElement, SCOPE_BASE, SCOPE_SUBTREE, binary_encode
from samba.sd_utils import SDUtils
-from .exceptions import DeleteError, DoesNotExist, ModelError,\
+from .exceptions import DeleteError, DoesNotExist, FieldError,\
MultipleObjectsReturned, ProtectError, UnprotectError
from .fields import DateTimeField, DnField, Field, GUIDField, IntegerField,\
StringField
try:
db_value = field.to_db_value(ldb, value, FLAG_MOD_ADD)
except ValueError as e:
- raise ModelError(e)
+ raise FieldError(e, field=field)
# Don't add empty fields.
if db_value is not None and len(db_value):
db_value = field.to_db_value(ldb, value,
FLAG_MOD_REPLACE)
except ValueError as e:
- raise ModelError(e)
+ raise FieldError(e, field=field)
# When a field returns None or empty list, delete attr.
if db_value in (None, []):