Not in web2py. Perhaps in the code you are running?

$ grep '%(first_name)' gluon/*.py
gluon/tools.py:                user_identifier = '%(first_name)s'
gluon/tools.py:                return '%(first_name)s %(last_name)s' % user
gluon/tools.py:                        format='%(first_name)s %(last_name)s 
(%(id)s)'))




On Tuesday, 11 September 2012 13:14:11 UTC-5, mweissen wrote:
>
> I wanted to see a row of a table and I started the database administration 
> tool. I get the following snapshot.   There is a trailing "%", but no "s" - 
> why?
> self.label '%(last_name)s %(first_name)%'
> Error snapshot [image: help]  
>
> <type 'exceptions.KeyError'>('first_name') 
>
> inspect attributes 
>  Frames 
>    
>    -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\restricted.py in restricted at 
>    line 209* code arguments variables 
>     -  
>    
>    *File 
>    D:\dropbox\InfoSMS\web2py\applications\secure\controllers\appadmin.py in 
>    <module> at line 441* code arguments variables 
>     -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\globals.py in <lambda> at line 
>    185* code arguments variables 
>     -  
>    
>    *File 
>    D:\dropbox\InfoSMS\web2py\applications\secure\controllers\appadmin.py in 
>    update at line 283* code arguments variables 
>     -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\sqlhtml.py in __init__ at line 
>    1015* code arguments variables 
>     -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\sqlhtml.py in widget at line 227* 
>    code arguments variables 
>     -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\validators.py in _options at 
>    line 2480* code arguments variables 
>     -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\validators.py in options at line 
>    479* code arguments variables 
>     -  
>    
>    *File D:\dropbox\InfoSMS\web2py\gluon\validators.py in build_set at 
>    line 474* code arguments variables 
>     Function argument list 
>    
>    (self=<gluon.validators.IS_IN_DB object>)
>     Code listing 
>    
>    469.
>    470.
>    471.
>    472.
>    473.
>    474.
>    
>    475.
>    476.
>    477.
>    478.
>    
>                    reduce(lambda a,b:a|b,(f for f in fields if not 
> f.name=='id'))
>    
>    
>                dd = dict(orderby=orderby, cache=self.cache)
>    
>    
>                records = self.dbset(table).select(table.ALL, **dd)
>    
>    
>            self.theset = [str(r[self.kfield]) for r in records]
>    
>    
>            if isinstance(self.label,str):
>    
>                self.labels = [self.label % dict(r) for r in records]
>    
>    
>            else:
>                self.labels = [self.label(r) for r in records]
>    
>    
>        def options(self, zero=True):
>    
>      Variables  self.labels undefined  self <gluon.validators.IS_IN_DB 
>    object>  records <Rows (897)>  r <Row {'sprechtag_wunsch': <Set 
>    (sprechtag_wunsch... <gluon.dal.RecordDeleter object at 0x09DB2350>}>  
>    self.label '%(last_name)s %(first_name)%'  builtindict <type 'dict'>  
>     
>  Context
>
> Regards, Martin
>

-- 



Reply via email to