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?
>>>
>>>
>>>
--