Como criar associação dinâmica entre dois registros

23 views
Skip to first unread message

Leonardo Porto

unread,
Sep 14, 2016, 1:37:56 PM9/14/16
to web2py-users-brazil
Galera, boa tarde!
Preciso fazer uma associação entre dois registros, seria algo parecido com Post e Comment, mas no meu caso são Ask e Awnsor. Em fim, no appadmin com base no modelo consigo fazer isto de forma manual, mas passando pra formatação do sistema fiquei perdido como gerar isso de forma dinâmica/correta. Já consigo listar as perguntas feitas para o usuário que está logado. Na listagem de Perguntas preciso de um link "Responder" E então abrir a pergunta completa e levar o ID do usuário logado pra gravar essa resposta no banco.

A estrutura está assim: 

Ask = db.define_table('ask',
   
Field('title', 'string', label='Title'),
   
Field('description', 'string', label='Descripton'),
   
Field('category', 'reference category', label='Category'),
   
Field('businessman', 'list:integer', label='Businessman'),
    auth
.signature,
    format
='%(title)s'
)


Awnsor = db.define_table('awnsor',
   
Field('ask_id', 'reference ask', label='Ask Id'),
   
Field('businessman', 'reference businessman', label='Businessman Id'),
   
Field('descriptiom', 'string', label='Awnsor'),
    auth
.signature,
)

Obrigado galera! Boa tarde!

Carlos Costa

unread,
Sep 14, 2016, 5:16:13 PM9/14/16
to web2py-us...@googlegroups.com
Vou ignorar a parte que você filtra as perguntas para mostrar a lista e dar um exemplo simples desse tipo de funcionalidade.
Depois você costura isso tudo aí.


def asks():
    asks = db(Ask).select()
    # criar uma representação do campo ID que rendereiza um link para a página de resposta
    asks.id.represent = lambda value, row: A('Responder', _href=URL(f='answer', args=[value]))
    return dict(asks=asks)

def aswer():
    # alimentar com o valor default o id de ask passado por argumento na url
    Awnsor.ask_id.default = request.args(0)
    Awnsor.ask_id.writable = False
    Awnsor.ask_id.readable = False
    form = SQLFORM(Awnsor).process()
    return dict(form=form)


Bem basicão, só pra você começar a pegar o jeito.

--
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
<º))><

Leonardo Porto

unread,
Sep 14, 2016, 6:31:34 PM9/14/16
to web2py-users-brazil
Obrigado Carlos vou seguir suas dicas e tentar fazer algo legal!
Muito obrigado!
Já já volta pedir ajuda! hahha
Abraços

Carlos Costa

unread,
Sep 14, 2016, 6:32:57 PM9/14/16
to web2py-us...@googlegroups.com
Falou! Valeu!
Boa sorte!

--
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.
Reply all
Reply to author
Forward
0 new messages