Skip to content Skip to sidebar Skip to footer

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,

Solution 1:

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.

Solution 2:

With much thanks to Jim, the exact solution I was looking for is:

p.properties()[s].get_value_for_datastore(p)

To all the other respondents, thank you for your help. I also would have expected the Model class to implement the python standard way of doing this, but for whatever reason, it doesn't.

Solution 3:

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

Solution 4:

Try:

p.model_properties()[s].get_value_for_datastore(p)

See the documentation.

Solution 5:

p.first_name = "New first name" p.put()

or p = Person(first_name = "Firsty", last_name = "Lasty" ) p.put()

Post a Comment for "Google App Engine: How Can I Programmatically Access The Properties Of My Model Class?"