Thank you... It's rock.
I just add a check if fieldlable is different of None to not getting
blank field name... ;-)
for fieldname in db.atable.fields:
if labels[fieldname]!=None:
db.atable[fieldname].label = labels[fieldname]
#.get('fieldname',fieldname)
else:
db.atable[fieldname].label = db.atable[fieldname].label
I don't know why the .get('fieldname',fieldname) was not working... I
was getting fieldname doesn't exist.
Jonhy
On 2010-07-28 00:52, mdipierro wrote:
I would do:
db.define_table('label',Field('fieldname'),Field('fieldlabel'))
labels=dict((r.fieldname,r.fieldlabel) for r in
db().select(db.label.ALL,cache=(cache.ram,3600)))
...
define other table: atable
...
for fieldname in db.atable.fields:
db.atable[fieldname].label = labels.get('fieldname',fieldname)
This will reduce the extra database access to a single query per hour
(3600). so no overhead.
On Jul 27, 2:18 pm, Jean-Guy<jean...@gmail.com> wrote:
Hello,
I would like to use data dictionnary stored in database to define field
label and comment. The comment is used to provide help to users...
I am wondering what could have the smaller impact on database performance :
1) create a python dictionnary like this :
dictname = {fieldlablename:db().select()}
in it own model... Then use the dictname['fieldlablename'] key in :
db.define_table('atable',
Field('field1'),
Field('field2',label=dictname['fieldlablename']))
OR
2) Just :
db.define_table('atable',
Field('field1'),
Field('field2',label=db().select()))
I expect that my first choice will result in the reducing request to
database server and not overwrite the server database by database
queries each time a form is called by a controller function... Is that
correct?
Regards
Jonhy