Hi Anthony, it is working now, sorry for the inconvenience. Thanks again! On Friday, September 27, 2013 4:40:05 PM UTC+2, Anthony wrote: > > Can you show your exact code (the code you showed can't be the code you're > using, as there would be no add or edit buttons with that code)? It > definitely works when I try it. > > Anthony > > On Friday, September 27, 2013 9:22:37 AM UTC-4, Mirko wrote: >> >> Hi Anthony, and thanks for answering. >> >> Actually >> >> db.person._format = lambda row: '%s' % row.name.upper() >> >> doesnt not affect the dropdown list building... >> >> >> I had to add this >> >> db.thing.owner_id.requires=IS_IN_DB(db,'person.id',lambda row: '%s' % >> row.name.upper()) >> >> to have the dropdown list in upper case... >> >> On Friday, September 27, 2013 2:54:17 PM UTC+2, Anthony wrote: >>> >>> The dropdown on a create/edit form is not controlled by the field's >>> represent attribute -- instead, it is the field's IS_IN_DB validator that >>> creates the dropdown. So, you could either manually override the default >>> IS_IN_DB validator, or just change the db.person._format attribute, which >>> will affect both the represent attribute and the IS_IN_DB validator of >>> db.thing.owner_id: >>> >>> db.person._format = lambda r: r.name.upper() >>> >>> Note, with the above, you no longer need to explicitly change the >>> db.thing.owner_id.represent attribute. >>> >>> Anthony >>> >>> On Friday, September 27, 2013 7:30:13 AM UTC-4, Mirko wrote: >>>> >>>> Here's a code example : >>>> >>>> db definition: >>>> db.define_table('person', Field('name'), format='%(name)s') >>>> db.define_table('thing', Field('name'), Field('owner_id','reference >>>> person'), format='%(name)s') >>>> >>>> controller: >>>> def manage_test(): >>>> db.thing.owner_id.represent=lambda id, row: '%s' % >>>> db.person[row.owner_id].name.upper() >>>> grid=SQLFORM.smartgrid(db.thing) >>>> return dict(grid=grid) >>>> >>>> db.thing.owner_id.represent is not taken into account when click on add >>>> or edit button. >>>> >>>> Many thanks! >>>> >>>> >>>> On Friday, September 27, 2013 10:47:38 AM UTC+2, Mirko wrote: >>>>> >>>>> Hi, >>>>> >>>>> I'm using 2.5.1 and I defined a table with a default format which I >>>>> override in my controller with "represent" attribute and then I call >>>>> smartgrid on another table referencing the first one. >>>>> >>>>> When I call the controller, smartgrid shows a tabular display and the >>>>> representation I overrode is taken into account, the correct string >>>>> representation is displayed, fine. >>>>> >>>>> But when I click on add button or edit button, it appears that the >>>>> default format is used for the dropdown list. >>>>> >>>>> I've tried many workarounds unsuccessfully, but I'm sure the new >>>>> representation code line is executed and it looks like on creation or >>>>> editing smartgrid is reloading the table definition after that... >>>>> >>>>> Or I'm I missing something ? >>>>> >>>>> Thanks in advance! >>>>> >>>>> Mirko >>>>> >>>>
-- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.