Perhaps I misunderstood what you are trying to do. Have you seen the dynamic_properties() method of the Model class?
http://code.google.com/appengine/docs/python/datastore/modelclass.html (at the bottom) It's pretty hard to find - I flagged a doc defect ages ago - http://groups.google.com/group/google-appengine-python/browse_thread/thread/eac9af0e9d6bb152/5138a6d61a59b749 Something easier (but less performant) than using the underlying API is just to iterate over the object properties - for object in objects_from_db: for property_name in object.dynamic_properties(): print "%s:%s" % (property_name, getattr(object, property_name)) Treat the above as pseudocode, as I haven't actually run it, but you get the idea. On Apr 19, 11:59 am, Lynge <[email protected]> wrote: > Many thanks, this should do nicely. I have already written a hack-job > implementation to get around it, but will soon change it to something > that makes use of this. > > On 16 Apr., 10:23, hawkett <[email protected]> wrote: > > > > > > > If you use the (undocumented) underlying datastore API you will get > > datastore objects as lists of dictionary-like objects. It is the > > higher level datastore API that converts these objects into Models. > > Consequently, using this API is slightly faster as well. For example > > > from google.appengine.api import datastore > > > q = datastore.Query("SomeKind", {"name =": "someName"}, None, False, > > True, None) # Kind, query, ?, keys_only, compile, cursor > > q_results = q.Run() > > > for result in q_results: > > print result.key() > > print result['name'] > > > The only mechanism I have found to understand this API is to review > > the app engine code. The documentation in the code is pretty > > reasonable, but generally no examples. > > > On Apr 15, 1:17 pm, Lynge <[email protected]> wrote: > > > > Hi, I am using an Expando class and I want to sort it. > > > It needs to be sorted according to a dynamically assigned property so > > > it has o be done at runtime. > > > > I am using python and it could be done easily with something like: > > > > dates = sorted(datelist, key=itemgetter('comp_date')) > > > > But since the objects returned from the datastore are not iterable > > > this is impossible. > > > > So I thought that I would just create my own list of dicts and then I > > > can iterate and sort it, but alas that is not possible either. > > > > I can iterate over the primary just fine > > > > for date in datesfromdb: > > > datelist.append(dict(date)) > > > > but no matter how I try to get the data out of the date object I have > > > no luck. > > > I dont want to name all the properties of the model since that would > > > make it a big pain to update anything, but how then do I do it? > > > > Any help would be appreciated. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
