Adquirir dados de referencia secundária da DAL

16 views
Skip to first unread message

Érique Moreira

unread,
Dec 4, 2017, 6:13:11 AM12/4/17
to web2py-users-brazil

Bom Dia

Precisava buscar dados a partir de de outra se referencia direta.

Ex.:

db.define_table('pacientes',
                 Field ('nome', 'string'))

db.define_table('consultas',
                 Field ('data', 'date'),
                 Field ('paciente', 'reference paciente'))

db.define_table('procedimentos',
                Field ('consulta', 'reference consultas'),
                Field ('procedimento', 'string'))


A partir de procedimento, precisava buscar a consulta, e o paciente.Porém, precisava listas a data das consultas do paciente específico, com os procedimentos em cada consulta.

att
Érique Moreira


Carlos Costa

unread,
Dec 4, 2017, 6:23:01 AM12/4/17
to web2py-us...@googlegroups.com
Desculpa, não entendi sua dúvida.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

Érique Moreira

unread,
Dec 4, 2017, 6:42:04 AM12/4/17
to web2py-users-brazil


Eu precisva listar em uma tabela, as datas das consultas, relacionadas com os procedimentos do mesmo paciente.

Eu tenho um paciente Fulano, ele fez uma consulta hj dia 04/12/17 e eu cadastrei o procedimento Dentística no 34 ok?

Os procedimento foi registrado com um id de procedimento, relacionado com a consulta do paciente Fulano do dia 04/12/17.
Esse paciente já tinha feito outras 10 consultas, em datas anteriores. O que pretendo mostrar é uma lista relacionando as datas das consultas e os procedimentos.

Relsi Hur Maron

unread,
Dec 4, 2017, 7:31:00 AM12/4/17
to web2py-users-brazil

Bom dia Érique, não ficou muito claro se tu não sabe como o fazer ou se está tendo problemas em fazer. Tu já verificou capitulo da documentação relacionado a isso? Caso já o tenha feito, reporte aqui qual o problema que tu estás tendo para buscar os dados, mas caso ainda não o tenha feito, segue o link com todo o detalhamento do que tu precisas:

http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#One-to-many-relation

Qualquer dúvida é só dizer.

Carlos Costa

unread,
Dec 4, 2017, 7:57:45 AM12/4/17
to web2py-us...@googlegroups.com
Entendi.
Tem várias formas de fazer isso.
Na view também você pode mostrar isso de várias formas, table, lists, algum componente....

Basicamente, bem basicamente mesmo, você pode fazer tudo numa consulta só assim:

consultas = db( (db.conultas.pacidente==id_paciente) & (db.procedimentos.consulta==db.consultas.id) ).select()

e na view se fizer assim:

{{=consultas}}

Vai ver que já traz um resultado... bem feio mas traz....

Aí é questão de ajustes aqui e ali. Mas é por aí que começa.



--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Érique Moreira

unread,
Dec 4, 2017, 8:39:51 AM12/4/17
to web2py-users-brazil
Eu estava tentando algo assim:
v = db(db.procedimentos.consulta == (db.consultas.paciente == a)).select()

mas não estava dando, onde "a" é a request com id do paciente



Carlos Costa

unread,
Dec 4, 2017, 9:41:54 AM12/4/17
to web2py-us...@googlegroups.com
Não funciona assim.

db.procedimentos.consulta é o id da consulta na tabela consultas
(db.consultas.paciente == a) não retorna um id
Então comparar esses essas duas expressões não vai dar certo.

Experimenta o select que passei anteriormente e dá uma estudada no básico do DAL como o Relsi disse.

A medida que for tendo dúvidas, posta aqui pra gente tentar te ajudar.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Érique Moreira

unread,
Dec 4, 2017, 11:09:19 AM12/4/17
to web2py-users-brazil
Deu certo Carlos, obrigado pela ajuda

Já dei uma organizada na View tb.


Reply all
Reply to author
Forward
0 new messages