I'm using Django in Google App Engine. If I have the class
class Person():
first_name = StringProperty()
last_name = StringProperty()
and I have an instance where Person.first_name = Bob and Person.last_name = Vance, can I create a template that iterates over the Person attributes to produce:
<tr>
<td>First</td>
<td>Bob</td>
</tr>
<tr>
<td>Last</td>
<td>Vance</td>
</tr>
Perhaps more succinctly, is there a model.as_table() method that will print out the attributes of my instance, Bob Vance?
Finally found a good solution to this on the dev mailing list (http://groups.google.com/group/django-developers/browse_thread/thread/44cd834438cfda77/557f53697658ab04?lnk=gst&q=template+model#557f53697658ab04):
In the view add:
in the template add:
TODO
Change:
to:
In template you cannot access __underscored__ attributes or functions. I suggest instead you create a function in your model/class:
In template it's just:
Now this will give you "first_name" instead of "First", but you get the idea. You can extend the method to be a mixin, or be present in a parent-class etc.. Similarly you can use this if you have a few person objects you want to iterate over: