diff --git a/spug_api/libs/model.py b/spug_api/libs/model.py index af8edc3..155618c 100644 --- a/spug_api/libs/model.py +++ b/spug_api/libs/model.py @@ -47,7 +47,12 @@ class ModelMixin(object): record = cls(**kwargs).save() return record - def to_json(self): - if hasattr(self, '__table__'): + def to_json(self, excludes=None, selects=None): + if not hasattr(self, '__table__'): + raise AssertionError('<%r> does not have attribute for __table__' % self) + elif selects: + return {i: getattr(self, i) for i in selects} + elif excludes: + return {i.name: getattr(self, i.name) for i in self.__table__.columns if i.name not in excludes} + else: return {i.name: getattr(self, i.name) for i in self.__table__.columns} - raise AssertionError('<%r> does not have attribute for __table__' % self) diff --git a/spug_api/libs/tools.py b/spug_api/libs/tools.py index 860c0b4..0b7d9e1 100644 --- a/spug_api/libs/tools.py +++ b/spug_api/libs/tools.py @@ -70,7 +70,7 @@ class Argument(object): :param bool required: is required """ - def __init__(self, name, default=None, required=True, type=str, filter=None, help=None, nullable=False): + def __init__(self, name, default=None, required=True, type=None, filter=None, help=None, nullable=False): self.name = name self.default = default self.type = type