My bad.

print db.formulaImportLine.formulaImportId.represent(x.formulaImportLineId,x
)

because you have:

... represent = lambda p, r: ...

Here p is the value of the db.formulaImportLine.formulaImportId and r is 
the row.


On Wednesday, 12 September 2012 15:59:02 UTC-5, Jim S wrote:
>
> Massimo
>
> Thanks for the reply.  Yes, I know I can do it the second way, I'm trying 
> to a generic function working that will work with any field with the 
> represent value set.  When I try the first suggestion I get the following:
>
> Traceback (most recent call last):
>  File "C:\dev\miscellaneous\playground\dalOutside.py", line 28, in 
> <module>
>  print db.formulaImportLine.formulaImportId.represent(x.
> formulaImportLineId)
> TypeError: <lambda>() takes exactly 2 arguments (1 given)
>
> I'm kinda lost here now...
>
> -Jim
>
> On Wednesday, September 12, 2012 3:02:44 PM UTC-5, Massimo Di Pierro wrote:
>>
>> Given your model you can do:
>>
>> for x in db(db.formulaImportLine.formulaImportLineId==63901).select():
>>  print db.formulaImportLine.formulaImportId.represent(x.formul
>> aImportLineId)
>>
>> or more simply
>>
>> for x in db(db.formulaImportLine.formulaImportLineId==63901).select():
>>  print x.productNumber
>>
>> On Wednesday, 12 September 2012 14:10:50 UTC-5, Jim S wrote:
>>>
>>> Given the following tables:
>>>
>>> formulaImport = db.define_table('formulaImport', 
>>>  Field('formulaImportId', 'id', readable=False),
>>>  Field('fileName', length=256, required=True, label='File'),
>>>  Field('sweptOn', 'date', required=True, label='Swept', 
>>>  default=datetime.datetime.today()),
>>>  Field('importedOn', 'date', label='Imported'),
>>>  Field('brillPlant', length=5, required=True, label='Plant'),
>>>  Field('productNumber', length=30, required=True, 
>>>  label='Product'),
>>>  Field('productName', length=75, required=True, 
>>>  label='Name'),
>>>  format = '%(productNumber)s')
>>> formulaImport._plural = 'Formula Imports'
>>>
>>> formulaImport.fileName.requires = IS_NOT_EMPTY()
>>> formulaImport.brillPlant.requires = IS_NOT_EMPTY()
>>> formulaImport.sweptOn.requires = IS_DATE('%m/%d/%Y')
>>> formulaImport.productNumber.requires = IS_NOT_EMPTY()
>>> formulaImport.productName.requires = IS_NOT_EMPTY()
>>> formulaImport.importedOn.requires = IS_NULL_OR(IS_DATE('%m/%d/%Y'))
>>>
>>> formulaImportLine = db.define_table('formulaImportLine',
>>>  Field('formulaImportLineId', 'id', readable=False),
>>>  Field('formulaImportId', db.formulaImport, required=True,
>>>  label='Formula Import'),
>>>  Field('sequence', 'integer', required=True),
>>>  Field('productNumber', length=30, required=True, label='Product Number'
>>> ),
>>>  Field('quantity', 'decimal(13,5)', required=True),
>>>  format=('%(productNumber)s'))
>>> formulaImportLine.formulaImportId.required = IS_IN_DB(db, db.
>>> formulaImport,
>>>  '$(fileName)s',
>>>  '.choose.')
>>> formulaImportLine.sequence.requires = [IS_INT_IN_RANGE(0,9999999), 
>>>  IS_NOT_EMPTY()]
>>> formulaImportLine.productNumber.requires = IS_NOT_EMPTY()
>>> formulaImportLine.quantity.requires = [IS_FLOAT_IN_RANGE(0,2000), 
>>>  IS_NOT_EMPTY()]
>>> db.formulaImportLine.formulaImportId.represent = lambda p, r: r.
>>> productNumber
>>>
>>>
>>> Given a specific formulaImportLine I want to be able to display the 
>>> associate formulaLine.productNumber.
>>>
>>> Running this code:
>>> for x in db(db.formulaImportLine.formulaImportLineId==63901).select():
>>>  print x.formulaImportId.represent()
>>>
>>> ...I get the following traceback:
>>>
>>> Traceback (most recent call last):
>>>  File "C:\dev\miscellaneous\playground\dalOutside.py", line 26, in 
>>> <module>
>>>  print x.formulaImportId.represent()
>>> TypeError: 'NoneType' object is not callable
>>>
>>> Is there a way for me to reference a 'parent' record and display either 
>>> for 'format' for the table or the 'represent' for the specific field?
>>>
>>>
>>>

-- 



Reply via email to