small fixes to Record
[invirt/packages/invirt-database.git] / python / database / record.py
index b1b46bb..4962322 100755 (executable)
@@ -1,10 +1,12 @@
 class Record(object):
     _identity_field = None
 class Record(object):
     _identity_field = None
+
     def get(self, field):
         try:
             return self.__getattribute__(field)
         except:
             return None
     def get(self, field):
         try:
             return self.__getattribute__(field)
         except:
             return None
+
     def _formatField(self, field):
         v = self.get(field)
         if callable(v):
     def _formatField(self, field):
         v = self.get(field)
         if callable(v):
@@ -16,10 +18,16 @@ class Record(object):
                 return '[%d x %s]'%(len(v), type(v[0]))
         else:
             return repr(v)
                 return '[%d x %s]'%(len(v), type(v[0]))
         else:
             return repr(v)
+
+    @classmethod
+    def _ignore(cls):
+        return [cls._identity_field]
+
     def _fields(self):
         ignore = self._ignore()
     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__
 
     def __repr__(self):
         classname = self.__class__.__name__
 
@@ -34,8 +42,6 @@ class Record(object):
             payload = ": "+payload
 
         return "<%s%s%s>" % (classname, identity, payload)
             payload = ": "+payload
 
         return "<%s%s%s>" % (classname, identity, payload)
-    def _ignore(self):
-        return [self._identity_field, 'c', 'query', 'get']
 
 class FormattableRecord(Record):
     _format = {}
 
 class FormattableRecord(Record):
     _format = {}