From 69d18b4392f149207b7b6315c38c9ad31c9e2da5 Mon Sep 17 00:00:00 2001 From: joamag Date: Fri, 23 Oct 2015 21:59:45 +0100 Subject: [PATCH] better casting for operation --- src/quorum/model.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/quorum/model.py b/src/quorum/model.py index b784b266..53aa6520 100644 --- a/src/quorum/model.py +++ b/src/quorum/model.py @@ -421,7 +421,7 @@ def singleton( @classmethod def get(cls, *args, **kwargs): - fields, eager, map, rules, meta, fill, build, skip, limit, sort, raise_e = cls._get_attrs(kwargs, ( + fields, eager, map, rules, meta, build, fill, skip, limit, sort, raise_e = cls._get_attrs(kwargs, ( ("fields", None), ("eager", None), ("map", False), @@ -1888,7 +1888,11 @@ def cast(self, values): parameters = self.get("parameters", []) for value, parameters in zip(values, parameters): cast = parameters[2] - if cast and not value in (None, ""): value = cast(value) + is_default = value in (None, "") + if cast in ("file",): cast = None + if cast in ("longtext",): cast = legacy.UNICODE + if cast and not is_default: value = cast(value) + if is_default: value = TYPE_DEFAULTS.get(cast, value) casted.append(value) # returns the final list of casted values to the caller method