diff --git a/peewee_plus.py b/peewee_plus.py index 23f1799..350d15a 100644 --- a/peewee_plus.py +++ b/peewee_plus.py @@ -317,6 +317,8 @@ class JSONField(peewee.TextField): # pylint: disable=abstract-method :param dump_params: Additional keyword arguments to unpack into :func:`json.dump` :param load_params: Additional keyword arguments to unpack into :func:`json.load` + :raises ValueError: When attempting to set a non-JSON serializable object to the field + :raises peewee.IntegrityError: When the underlying database value is not JSON serializable """ def __init__( @@ -334,7 +336,7 @@ class JSONField(peewee.TextField): # pylint: disable=abstract-method try: return super().db_value(json.dumps(value, **self.dump_params)) except TypeError as err: - raise peewee.IntegrityError( + raise ValueError( f"Failed to JSON encode object of type '{type(value)}'" ) from err