Well, a change was just made in trunk to allow '%(tablename.fieldname)s' notation, but it looks like the query retains only the fields in the main table (db.productSite in this case) anyway, so I guess that won't help. So instead, maybe:
lambda r: db(db.product.productId == r.productId).select().first(). productName Anthony On Friday, April 12, 2013 1:56:34 PM UTC-4, Jim S wrote: > > requires = > IS_IN_DB(db((~db.productSite.productSiteId.belongs(currentItems)) & > (db.productSite.availableAddon==True) & > (db.productSite.siteId==workorder.siteId) & > > (db.product.productId==db.productSite.productId)), > db.productSite.productSiteId, > lambda r: r.product.productName, zero='..') > > ...gives me... > > Traceback (most recent call last): > File "C:\dev\web2py\gluon\restricted.py", line 212, in restricted > > exec ccode in environment > File "C:/dev/web2py/applications/infocenter/controllers/applications.py" > <http://10.10.2.34:8000/admin/default/edit/infocenter/controllers/applications.py>, > line 4291, in <module> > > File "C:\dev\web2py\gluon\globals.py", line 194, in <lambda> > > self._caller = lambda f: f() > > File "C:\dev\web2py\gluon\tools.py", line 2976, in f > > return action(*a, **b) > File "C:/dev/web2py/applications/infocenter/controllers/applications.py" > <http://10.10.2.34:8000/admin/default/edit/infocenter/controllers/applications.py>, > line 864, in workorderBom > > _formname='addonForm') > File "C:\dev\web2py\gluon\sqlhtml.py", line 1599, in factory > > **attributes) > File "C:\dev\web2py\gluon\sqlhtml.py", line 1113, in __init__ > > inp = self.widgets.options.widget(field, default) > > File "C:\dev\web2py\gluon\sqlhtml.py", line 252, in widget > > options = requires[0].options() > File "C:\dev\web2py\gluon\validators.py", line 546, in options > > self.build_set() > File "C:\dev\web2py\gluon\validators.py", line 543, in build_set > > self.labels = [self.label(r) for r in records] > > File "C:/dev/web2py/applications/infocenter/controllers/applications.py" > <http://10.10.2.34:8000/admin/default/edit/infocenter/controllers/applications.py>, > line 853, in <lambda> > > lambda r: r.product.productName, zero='..') > AttributeError: 'Row' object has no attribute 'product' > > > > On Fri, Apr 12, 2013 at 12:10 PM, Jim Steil <ato....@gmail.com<javascript:> > > wrote: > >> Shoot, should have thought of that. >> >> Will try when I get back to the office. >> >> Jim >> On Apr 12, 2013 12:04 PM, "Anthony" <abas...@gmail.com <javascript:>> >> wrote: >> >>> It probably should work, but for some reason, the code converts the Row >>> to a dict before doing the string formatting, and that breaks for Rows >>> involving joins. For now, you can use a lambda instead: >>> >>> lambda r: r.product.productName >>> >>> Anthony >>> >>> On Friday, April 12, 2013 12:38:09 PM UTC-4, Jim S wrote: >>>> >>>> Tried that already but got the same error. >>>> >>>> Jim >>>> On Apr 12, 2013 11:32 AM, "Anthony" <abas...@gmail.com> wrote: >>>> >>>>> Since you are joining tables, you might need to use the >>>>> "tablename.fieldname" format to refer to the field in question. Does >>>>> '%(product.productName)s' work (assuming "productName" is in the >>>>> db.product >>>>> table)? >>>>> >>>>> Anthony >>>>> >>>>> On Friday, April 12, 2013 11:59:59 AM UTC-4, Jim S wrote: >>>>>> >>>>>> requires = IS_IN_DB(db((~db.productSite.**p** >>>>>> roductSiteId.belongs(**currentIt**ems)) & >>>>>> (db.productSite.**availableAddo**n==True) >>>>>> & >>>>>> (db.productSite.siteId==**worko**rder.siteId) >>>>>> & >>>>>> (db.product.productId==db.**pro** >>>>>> ductSite.productId)), >>>>>> db.productSite.productSiteId, >>>>>> '%(productName)s', zero='..') >>>>>> >>>>>> I get a trace back with this. If I pull out the '%(productName)s' it >>>>>> works. But, I want to specify the field name to display being a field >>>>>> in >>>>>> the table linked by the 4 'anded' query. >>>>>> >>>>>> Help? >>>>>> >>>>>> -Jim >>>>>> >>>>> -- >>>>> >>>>> --- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "web2py-users" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/** >>>>> topic/web2py/vb0268kC_mc/**unsubscribe?hl=en<https://groups.google.com/d/topic/web2py/vb0268kC_mc/unsubscribe?hl=en> >>>>> . >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> web2py+un...@**googlegroups.com. >>>>> For more options, visit >>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>>> >>>>> >>>> -- >>> >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "web2py-users" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/web2py/vb0268kC_mc/unsubscribe?hl=en. >>> To unsubscribe from this group and all its topics, send an email to >>> web2py+un...@googlegroups.com <javascript:>. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> > -- --- 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.