Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google App Engine: how can I programmatically access the properties of my Model class?

I have a model class:

class Person(db.Model):
  first_name = db.StringProperty(required=True)
  last_name = db.StringProperty(required=True)

I have an instance of this class in p, and string s contains the value 'first_name'. I would like to do something like:

print p[s]

and

p[s] = new_value

Both of which result in a TypeError.

Does anybody know how I can achieve what I would like?

like image 874
David Sykes Avatar asked Sep 18 '08 11:09

David Sykes


1 Answers

If the model class is sufficiently intelligent, it should recognize the standard Python ways of doing this.

Try:

getattr(p, s)
setattr(p, s, new_value)

There is also hasattr available.

like image 191
Antti Rasinen Avatar answered Oct 14 '22 15:10

Antti Rasinen