That's weired why is this working: class web_sites_extra(): def servername( self ): return self.web_sites.txt.split()
and this not: class web_sites_extra(): def servername( self ): r=self.web_sites.txt.split() return self.web_sites.txt.split() or this: class web_sites_extra(): def servername( self ): r="something" return self.web_sites.txt.split() On jún. 28, 09:13, szimszon <szims...@gmail.com> wrote: > After the > > http://www.thadeusb.com/weblog/2009/12/31/web2py_virtualfields_as_an_... > > webpage I made something like: > --- cut --- > db.define_table( 'web_sites', > Field( > 'web_id', db.web, > > label = T( 'Web config' ), > > requires = IS_IN_DB( db, 'web.id', '%(name)s' ) ), > Field( > 'name', 'string', > > label = T( 'Name' ), > > requires = [IS_NOT_EMPTY()] ), > Field( 'txt', > 'text', > > label = T( 'Config file' ), > > requires = [IS_NOT_EMPTY()] ), > Field( > 'weight', 'integer', > > label = T( 'Weight' ), > > requires = [IS_NOT_EMPTY()] ), > Field( > 'active', 'boolean', > > label = T( 'Active' ), > > default = True, > > ), > Field( > 'modified', 'boolean', > > label = T( 'Modified' ), > > default = True, > > writable = False, > > readable = False, > > ), > ) > > # computing ServerNames and ServerAliases > ########################################## > class web_sites_extra(): > def servername( self ): > def lzy( ): > x = 'sfjha' > return x > return lzy > > db.web_sites.virtualfields.append( web_sites_extra() ) > --- cut --- > > In the view: > --- cut --- > {{=selected_rows[0].servername()}} > > But I got: > > File "gluon/sql.py", line 665, in __getattr__ > return dict.__getitem__(self,key) > KeyError: 'servername' > > If I only change: > > class web_sites_extra(): > def servername( self ): > def lzy( ): > x = 'sfjha' > return x > return lzy > > to: > > class web_sites_extra(): > def lzy( self ): > x = 'sfjha' > return x > def servername( self ): > return self.lzy > > it works.