Ticket #307: gae-db-key-attr-307.diff
| File gae-db-key-attr-307.diff, 1.6 KB (added by nick, 6 months ago) |
|---|
-
pyamf/adapters/_google_appengine_ext_db.py
26 26 remove = True 27 27 self.context.class_aliases[obj.__class__] = pyamf.ClassAlias(obj.__class__, None) 28 28 29 try: 30 obj._pyamf_key = obj.key().id() 31 except: 32 obj._pyamf_key = None 33 29 34 self.writeObject(obj, *args, **kwargs) 30 35 36 del obj._pyamf_key 37 31 38 if remove: 32 39 self.context.class_aliases[obj.__class__] = None 33 40 … … 44 51 alias = pyamf.ClassAlias(obj.__class__, None) 45 52 self.context.class_aliases[obj.__class__] = alias 46 53 54 try: 55 obj._pyamf_key = obj.key().id() 56 except: 57 obj._pyamf_key = None 58 47 59 self.writeObject(obj, *args, **kwargs) 48 60 61 del obj._pyamf_key 62 49 63 if remove: 50 64 self.context.class_aliases[obj.__class__] = None 51 65 … … 53 67 """ 54 68 Returns a list of properties on an C{db.Model} instance. 55 69 """ 56 return list(obj.__class__._properties) 70 return list(obj.__class__._properties) + ['_pyamf_key'] 57 71 58 72 def get_attrs_for_expando(obj): 59 73 """ 60 74 Returns a list of dynamic properties on a C{db.Expando} instance. 61 75 """ 62 return obj.dynamic_properties() 76 return obj.dynamic_properties() + ['_pyamf_key'] 63 77 64 78 pyamf.register_class(db.Model, attr_func=get_attrs_for_model, metadata=['dynamic']) 65 79 pyamf.register_class(db.Expando, attr_func=get_attrs_for_expando, metadata=['dynamic'])
