Index: trunk/packages/invirt-database/python/database/owner.py
===================================================================
--- trunk/packages/invirt-database/python/database/owner.py	(revision 2187)
+++ trunk/packages/invirt-database/python/database/owner.py	(revision 2191)
@@ -16,25 +16,22 @@
     _identity_field = 'owner_id'
 
-    def getMemoryQuotas(owner):
-        owner_info = Owner.query().filter_by(owner_id=owner).first()
+    @classmethod
+    def getMemoryQuotas(cls, owner):
+        owner_info = cls.query().filter_by(owner_id=owner).first()
         if owner_info == None:
-            owner_info = Owner(owner_id=owner)
+            owner_info = cls(owner_id=owner)
         return (owner_info.get('ram_quota_total'), owner_info.get('ram_quota_single'))
-    getMemoryQuotas = staticmethod(getMemoryQuotas)
 
-    def getDiskQuotas(owner):
-        owner_info = Owner.query().filter_by(owner_id=owner).first()
+    @classmethod
+    def getDiskQuotas(cls, owner):
+        owner_info = cls.query().filter_by(owner_id=owner).first()
         if owner_info == None:
-            owner_info = Owner(owner_id=owner)
+            owner_info = cls(owner_id=owner)
         return (owner_info.get('disk_quota_total'), owner_info.get('disk_quota_single'))
-    getDiskQuotas = staticmethod(getDiskQuotas)
 
-    def getVMQuotas(owner):
-        owner_info = Owner.query().filter_by(owner_id=owner).first()
+    @classmethod
+    def getVMQuotas(cls, owner):
+        owner_info = cls.query().filter_by(owner_id=owner).first()
         if owner_info == None:
-            owner_info = Owner(owner_id=owner)
+            owner_info = cls(owner_id=owner)
         return (owner_info.get('vms_quota_total'), owner_info.get('vms_quota_active'))
-    getVMQuotas = staticmethod(getVMQuotas)
-
-    def _ignore(self):
-        return super(Owner, self)._ignore() + ['getMemoryQuotas', 'getDiskQuotas', 'getVMQuotas']
Index: trunk/packages/invirt-database/python/database/record.py
===================================================================
--- trunk/packages/invirt-database/python/database/record.py	(revision 2187)
+++ trunk/packages/invirt-database/python/database/record.py	(revision 2191)
@@ -1,4 +1,5 @@
 class Record(object):
     _identity_field = None
+
     def get(self, field):
         try:
@@ -6,4 +7,5 @@
         except:
             return None
+
     def _formatField(self, field):
         v = self.get(field)
@@ -17,8 +19,14 @@
         else:
             return repr(v)
+
+    @classmethod
+    def _ignore(cls):
+        return [cls._identity_field]
+
     def _fields(self):
         ignore = self._ignore()
-        keys = sorted(self.__class__.__dict__.keys())
-        return [(k,self._formatField(k)) for k in keys if k[0]!="_" and k not in ignore]
+        keys = sorted(self.c.keys())
+        return [(k,self._formatField(k)) for k in keys if k not in ignore]
+
     def __repr__(self):
         classname = self.__class__.__name__
@@ -35,6 +43,4 @@
 
         return "<%s%s%s>" % (classname, identity, payload)
-    def _ignore(self):
-        return [self._identity_field, 'c', 'query', 'get']
 
 class FormattableRecord(Record):
