Forráskód Böngészése

U - 增强to_json方法

雷二猛 6 éve
szülő
commit
2561d821c9
2 módosított fájl, 9 hozzáadás és 4 törlés
  1. 8 3
      spug_api/libs/model.py
  2. 1 1
      spug_api/libs/tools.py

+ 8 - 3
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)

+ 1 - 1
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