Hello, I have the following definitions in db.py
class ElectionVirtualField(object): ... def is_presidential(self): def lazy(self=self): return self.election.category == 'P' return lazy ... db.define_table('election', ... Field('category', length=1, label=T('Category') ... The problem I have is that when I add a bunch of elections in dict() (key = election.id, value = election row) and then traverse the dict, I get wrong values from is_presidential() Example: elections = dict() for election in db(db.election).select(): elections[election.id] = election for (k, v) in elections.items(): print k , ' ', v.category, ' ', v.is_presidential() Output: 81 D True 79 P True As you can see, it returns True for both, but for the first one, it should return False. If I change the code to reload the election from the database, the output is different: Example: elections = dict() for election in db(db.election).select(): elections[election.id] = election for (k, v) in elections.items(): reloaded_election = db.election(k) print k , ' ', v.category, ' ', v.is_presidential() Output: 81 D False 79 P True Does this mean that we can't save rows from DB on Build in types ? Thanks in advance, Santiago