I missed the table name alright. But lazy fields wont be called internally... so row.tablename.fieldname will return a function rather than value...
W dniu sobota, 25 sierpnia 2012 18:29:00 UTC+2 użytkownik Marin Pranjić napisał: > > You don't have to call .get() > It will be called internally with a row as an argument. > > And you should be using row.tablename.fieldname (instead just > row.fieldname) > > Marin > > On Sat, Aug 25, 2012 at 6:20 PM, Marek Mollin <[email protected]<javascript:> > > wrote: > >> Still not working. >> When I add static I can do: >> >> >> Test.get(db.test[1]) >> >> 'testobject' >> >> This is fine. >> But I cant do db.test[1].get() as it gives me TypeError - expected at >> least 1 argument. >> I thought that if something is defined as Field.Lazy that function >> automatically gets row as first argument. I mean that's how it works >> normally with regular functions. >> >> >> W dniu sobota, 25 sierpnia 2012 17:47:14 UTC+2 użytkownik Anthony napisał: >> >>> Perhaps you want to use static methods: >>> >>> class Test(object): >>> @staticmethod >>> def get(row): >>> return row.name >>> >>> Anthony >>> >>> On Saturday, August 25, 2012 11:33:06 AM UTC-4, Marek Mollin wrote: >>>> >>>> Hello, >>>> >>>> I have a problem with a construct like that: >>>> db.define_table('test', >>>> Field('name'), >>>> ) >>>> >>>> >>>> class Test(object): >>>> def get(row): >>>> return row.name >>>> def get_hello(row, greeting): >>>> return '%s %s' % (greeting, row.name) >>>> >>>> >>>> db.test.get = Field.Lazy(Test.get) >>>> db.test.get_hello = Field.Lazy(Test.get_hello) >>>> >>>> Why it would not work ? >>>> It works perfect if its a standard function. But if its unbound method >>>> I get TypeError expected at least 1. >>>> >>>> I am trying to do that in order to better organize models, I do not >>>> want to go as far as Bruno's modelless aproach as performance is not the >>>> issue but overtime they become messy. (Also I know that I can just make >>>> seperate file, but then I have to add number to the file and again it >>>> becomes very unclean). >>>> >>>> The whole deal is to move at least some of the logic to those Lazy >>>> fields (its a pain to have fat controllers). >>>> >>> -- >> >> >> >> > > --

