more workaround for API breakage
[invirt/packages/invirt-database.git] / python / database / record.py
index dcc99b9..fc8fa7f 100755 (executable)
@@ -1,3 +1,5 @@
+import sqlalchemy.orm.util as util
+
 class Record(object):
     _identity_field = None
     _default = {}
@@ -28,7 +30,7 @@ class Record(object):
 
     def _fields(self):
         ignore = self._ignore()
-        keys = sorted(self.c.keys())
+        keys = sorted(util.class_mapper(type(self)).mapped_table.c.keys())
         return [(k,self._formatField(k)) for k in keys if k not in ignore]
 
     def __repr__(self):
@@ -36,7 +38,7 @@ class Record(object):
 
         if self._identity_field:
             identity = self.__dict__.get(self._identity_field)
-            identity = ' ' + (identity and repr(identity) or 'hash=%d'%hash(self))
+            identity = ' ' + (identity and repr(identity) or 'hash=%X'%hash(self))
         else:
             identity = ''