Thanks for the help, it works. However, this alters the table definition. 
1) Is there a way that the value is only set temporarily ? 
2) When the address field is empty, can I use other fields , like city, 
country and etc?


On Saturday, August 5, 2017 at 9:10:25 PM UTC+2, Anthony wrote:
>
> The "represent" attribute controls the display of read-only data in grids 
> and read-only forms (or read-only fields). The values shown in the select 
> element in a form are controlled by the validator, which defaults to 
> IS_IN_DB for a reference field. The values shown in the select element 
> (generated by the validator) as well as the "represent" attribute are 
> controlled by the "format" argument in the definition of the referenced 
> table, so the simplest approach is to change that:
>
> db.define_table('customer',
>     ...,
>     format='%(name)s, %(address)s, %(city)s')
>
> Alternatively, you can explicitly set your own validator for the reference 
> field:
>
>     Field('customer', 'reference customer',
>           requires=IS_IN_DB(db, 'customer.id', '%(name)s, %(address)s, 
> %(city)s'))
>
> Anthony
>
> On Saturday, August 5, 2017 at 2:45:49 PM UTC-4, Vic Ding wrote:
>>
>> Hi all,
>> I have been hitting the wall for probably a simple problem. 
>> I have 2 tables sales order and customer, db.sales_order.customer 
>> reference customer table.
>>
>> db.define_table('customer',
>>                 auth.signature,
>>                 Field('name', 'string', requires=IS_NOT_EMPTY(), 
>> label=T("Company name")),
>>                 Field('address1', 'string', requires=IS_NOT_EMPTY()),
>>                 Field('city', 'string'),
>>                 Field('post_code', 'string', label=T("Post code")),
>>                 Field('country_id', 'reference country_list', 
>> requires=IS_EMPTY_OR(IS_IN_DB(db, 'country_list.id', '%(name)s %(code)s')), 
>> label=T("Country")),
>>
>>
>> db.define_table('sales_order',
>>                 auth.signature,
>>                 Field('ordernumber', 'string', label=T('Your order #'),
>>                       unique=True, length=250),
>>                 Field('customer', 'reference customer', label=T('Customer')),
>>
>>
>>                 format='%(ordernumber)s'
>>                 )
>>
>>
>> On the SQLFORM editing the sales order, I would like to show more info, 
>> like customer name + address1 + city, rather than just the name. I tried 
>> This is the SQLFORM
>>
>> db.sales_order.customer.represent = 'change representation'
>>
>> form = SQLFORM(db.sales_order, so_id, _name='form1')
>>
>>
>> As you can see, I changed the represent of customer filed to a static 
>> string. But even this won't work. the editing form is still show the name 
>> of the customer. Can someone hint me where I did it wrongly?
>> Thanks!
>> Cheers,
>> Vic
>>
>

-- 
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/d/optout.

Reply via email to