diff --git a/wallace/db/base/attrs/datatypes.py b/wallace/db/base/attrs/datatypes.py
index <HASH>..<HASH> 100644
--- a/wallace/db/base/attrs/datatypes.py
+++ b/wallace/db/base/attrs/datatypes.py
@@ -81,10 +81,14 @@ class UUID(String):
         is_uuid,
     )
 
-    def __set__(self, inst, val):
+    @classmethod
+    def typecast(cls, val):
         if isinstance(val, uuid.UUID):
             val = val.hex
-        super(UUID, self).__set__(inst, val)
+        else:
+            val = uuid.UUID(val).hex
+
+        return super(UUID, cls).typecast(val)
 
 
 class UUID4(UUID):
fix typecasting for UUID types