From 09877f77569ec8d50f9da8d00a40c868d105865e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Mon, 12 Sep 2022 10:01:59 -0300 Subject: [PATCH] pykson: Check if attribute is a JsonObject for ObjectListField MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- pykson/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pykson/__init__.py b/pykson/__init__.py index 6df16e9..ed82ddc 100644 --- a/pykson/__init__.py +++ b/pykson/__init__.py @@ -751,6 +751,9 @@ def __set__(self, instance, value, test: bool = False): value = [] for item in value: assert item is not None, "Null item passed to ObjectListField" + if not isinstance(item, self.item_type) and isinstance(item, dict) and issubclass(self.item_type, JsonObject): + super(ObjectListField, self).__set__(instance, Pykson().from_json(value, self.item_type), test) + return assert isinstance(item, self.item_type), "ObjectListField items must be of " + str( self.item_type) + ", found " + str(type(item)) super(ObjectListField, self).__set__(instance, value, test)