Perfeitamente..
O construtor da função funciona assim:
IS_IN_DB(db|set,'table.value_field','%(representing_field)s',zero='choose one')
Onde o primeiro parâmetro é um conjunto de dados, podendo ser
"db" ( para o banco de dados todo ) ou
"set" ( com esse é possível usar o filtro ).
O segundo é o campo e o terceiro é a forma de representação. Blz.
Para o seu caso você teria que fazer uma busca prévia desses clientes.. como tem o objeto do user logado , tipo : auth_user; poderia pegar o id dele, tipo um
auth.user.id e fazer a busca na tabela clientes pela id do user logado, db(
db.clientes.id ==
auth.user.id).select() . E assim colocar esse conjunto de dados no primeiro parâmetro do IS_IN_DB.
Um link que podem ajudar , explica melhor.
E uma explicação da doc sobre o usuário logado atual no sistema.
auth.user
contains a copy of the db.auth_user
records for the current logged in user or None
otherwise. There is also a auth.user_id
which is the same as auth.user.id
(i.e. the id of the current logger in user) or None
. Similarly, auth.user_groups
contains a dictionary where each key is the id of a group of with the current logged in user is member of, the value is the corresponding group role.