validação com multiplas colunas

13 views
Skip to first unread message

Jose C

unread,
Aug 12, 2015, 10:04:47 AM8/12/15
to web2py-users-brazil
Viva,

Tenho o seguinte modelo:

db.define_table('bsc_input',
               
Field('id_p_indicator', db.p_indicator, label=T('Indicator'), notnull=True),
               
Field('current_month', 'integer', label=T('Month'), notnull=True),
               
Field('current_year', 'integer', label=T('Year'), notnull=True),
               
Field('current_value', 'float', label=T('Value'), notnull=True))    

e gostava de garantir que 'id_p_indicator', 'current_month' e 'current_year' têm valores únicos na tabela.
Como poderei fazer a validação ?
Alguém me poderia ajudar ?
Obrigado

Vinicius Assef

unread,
Aug 13, 2015, 8:15:17 AM8/13/15
to web2py-us...@googlegroups.com
Se cada uma dessas colunas precisam ser únicas, use o validator IS_NOT_IN_DB().

Se as três juntas precisam formar um conteúdo único, use o argumento `onvalidation` do SQLFORM.

Vinicius.


--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
Para se desinscrever, envie email a: web2py-users-br...@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-br...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Jose C

unread,
Aug 13, 2015, 11:25:22 AM8/13/15
to web2py-users-brazil
Obrigado Vinicius

Kayro

unread,
Aug 13, 2015, 2:05:11 PM8/13/15
to web2py-us...@googlegroups.com
É possível criar um virtual field com as colunas correspondentes e usar o validador IS_NOT_IN_DB nele?

Ari Sobel

unread,
Aug 13, 2015, 2:35:59 PM8/13/15
to web2py googlegroups
Interessante questão, aí ele faria as vezes de uma chave composta...

Mas quais parâmetros vc passaria para o IS_NOT_IN_DB - os 3 campos? Ele pesquisaria onde? numa concatenação desses tres?
Nesse cenário, talvez o que o Vinicius disse caiba melhor, pois uma função disparada pelo 'onvalidation' fafia uma checagem nos 3 campos.
Reply all
Reply to author
Forward
0 new messages