I don't see any problems with assigning value via dict and accessing it through attribute. Also, we don't pass object itself on a lower level (dbapi), we pass it's serialized form, e.g. dict. Look at save() method below.