Hi Massimo, So far this is great !
But, while we're on the lazy fields topic, can you implement the following specialized VirtualCommand (maybe named Virtual*Row*Command)?: class VirtualRowCommand(object): def __init__(self, method, row): self.method = method if len(row) != 1: a + b # raise an error. self.row = *row.values()[0]* def __call__(self, *args, **kwargs): return self.method(self.row, *args, **kwargs) In my case, all my rows are a single item (whith is the table name), so it would be much better and simpler to use 'self' for the direct row (see "row.values()[0]" above). This way I can use virtual fields as follow: class VirtualTest(object): def x_id(vv, self): return *self*.id Note that 'vv' (or any other name) is the VirtualTest instance (which I don't really care about), and 'self' is the actual specific row. Can you please consider this approach or something similar that accomplishes the same thing?. Thanks!, Carlos