Hi Anthony,
i think that put the requires make my code more organized ... But it is a personal choice. I did changes in my tables and now i have: Clientes = db.define_table('clientes', Field('cnpj', 'string', label=T("CNPJ")), Field('nome_cliente', 'string', label=T("Cliente")), Field('email', 'string', label=T("E-mail")), Field('telefone', 'string', label=T("Telefone")), Field('responsavel_contato', 'string', label=T("Responsável")), ) Produto = db.define_table('produto', Field('ficha_tecnica', 'upload', label=T("Ficha Tecnica")), Field('descricao_produto', 'string', label=T("Descricao Produto")), Field('cliente_id', db.clientes, label=T("Cliente ID")), ) Ordem_Servico = db.define_table('ordem_servico', Field('identificador_os', 'string'), Field('produto_id', db.produto), Field('finalizado', "boolean"), ) Pedido = db.define_table('pedido', Field('ordem_servico_id', db.ordem_servico), Field('tipo_pedido', "integer", label=T("tp")) *Pedido.produto_id.requires = IS_IN_DB(Ordem_Servico), 'ordem_servico.id <http://ordem_servico.id>',* * lambda r: '%s - os: %s' % (r.ordem_servico_id.produto_id.cliente_id.nome_cliente,* * r.ordem_servico_id.identificador_os))* ----> is it possible to "navigate" like this? *r.ordem_servico_id.produto_id.cliente_id.nome_cliente* *to get the "nome_cliente" ?* Rgds Diego 2018-06-20 12:05 GMT-03:00 Diego Tostes <dtos...@gmail.com>: > Thanks Antony. > > I will code again with your tips. > > Rgds > > Diego > > 2018-06-20 11:56 GMT-03:00 Anthony <abasta...@gmail.com>: > >> Materia_Prima.pedido_id.requires = IS_IN_DB(db(Pedido), 'pedido.id', >> lambda r: '%s - referencia: >> %s' % (r.produto_id.cliente_nome, >> >> r.ordem_de_servico)) >> >> Note, r.produto_id.cliente_nome is a recursive select (it will result in >> an additional database query for each item in the dropdown list). >> >> Also, why isn't pedido_id a reference field? >> >> Note, you can avoid manually specifying the IS_IN_DB validators if you >> instead make all of the relevant fields reference fields and then specify >> the "format" argument of the two referenced tables (i.e., the "label" >> arguments you are using in the IS_IN_DB validators can instead be specified >> as the "format" arguments in the definitions of the respective referenced >> tables). In that case, web2py will automatically define the IS_IN_DB >> validators for you. >> >> Anthony >> >> >> On Wednesday, June 20, 2018 at 10:40:18 AM UTC-4, Diego Tostes wrote: >>> >>> I have those tables: >>> >>> *Produto = db.define_table('produto',* >>> * Field('ficha_tecnica', 'upload', label=T("Ficha Tecnica")),* >>> * Field('cliente_id', 'integer', label=T("Cliente ID")),* >>> * Field('cliente_nome', 'string', label=T("Nome Cliente"))* >>> *)* >>> >>> *Pedido = db.define_table('pedido',* >>> * Field('produto_id', db.produto),* >>> * Field('ordem_de_servico', 'string', label=T("Ordem de Servico")),* >>> * Field('tipo_de_pedido', 'integer', label=T("Tipo de Pedido"))* >>> *)* >>> >>> *Materia_Prima = db.define_table('materia_prima',* >>> * Field('pedido_id', 'integer', label=T("ID DO PEDIDO")),* >>> * Field('data_recebimento', 'date', label=T("Data Recebimento")),* >>> *)* >>> >>> *#requires* >>> *Pedido.produto_id.requires = IS_IN_DB(db(Produto), 'produto.id >>> <http://produto.id>', '%(cliente_nome)s - referencia: %(referencia)s')* >>> *Materia_Prima.pedido_id.requires = IS_IN_DB(db(Pedido), 'pedido.id >>> <http://pedido.id>', )* >>> >>> >>> I need that the field Materia_Prima.pedido_id, persist the pedido_id but >>> when i select in the dropdow of a SQLFORM the information is: >>> >>> >>> *'%(cliente_nome)s - referencia: %(ordem_de_servico)s' * >>> >>> but the field *cliente_nome* is a filed from *Produto*. >>> >>> is it Possible? >>> >>> >>> Rgds >>> >>> Diego >>> >>> >>> -- >> 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. >> > > -- 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.