I guess my code is more messed up than I thought. I'll try and clarify
your points:
*What am I trying to achieve?*
In the db there are people (given by the auth_user table). From those
people there are ones who are hierarchically above them and supervise
them.They are called Supervisors. All people have mobile and phone
extensions(numbers) . As far as my query goes, I'm getting the Supervisor'
numbers and the people's numbers associated with the Supervisor. What I'm
trying to accomplish: returning only the Supervisor' numbers.
*Would it make more sense to have it like this?*
I'm curious,why would a second table(extension_member) be needed?I think I
will also need the extension_number in the 'extension' table since that
table stores all the phone and mobile extensions.
*Why would you check the first name and last name when you already compared
the ID with person?*
Now I am the one a bit confused. The comparison between the ID and the
person was to connect both tables and then I would filter by the user I
wanted. But now I'm not sure If I've been doing this correctly...?
*Why would you use "like" for an integer field?*
It's the only way I know to check if a number begins as 9 or ~9 . Is there
a simpler/optimised way?Also, as an aside, is there a way to use regular
expressions in queries?
Thank you for all the help!
quarta-feira, 16 de Setembro de 2015 às 15:18:31 UTC+1, Leonel Câmara
escreveu:
>
> This is the answer to the first problem:
>
> db.auth_user.Supervisor.requires=IS_EMPTY_OR(IS_IN_DB(db,'auth_user.id',
> db.auth_user._format))
>
> You can just remove it as it will use the format for auth_user anyway as
> that's the default. So it becomes only:
>
> db.auth_user.Supervisor.requires=IS_EMPTY_OR(IS_IN_DB(db,'auth_user.id')
>
> As for the Extensions I'm very confused with what you're trying to achieve
> and your table structure doesn't seem very good. Would it make more sense
> to have it like this?
>
> db.define_table('extension',,
> Field('Supervisor' , 'reference auth_user', requires =
> IS_EMPTY_OR(IS_IN_DB(db,'auth_user.id','%(first_name)s %(last_name)s'))),
> Field('Extension_number','integer',required = True))
>
> db.define_table('extension_member',
> Field('extension' , 'reference extension'),
> Field('member' , 'reference auth_user'),
>
>
> I ask this because your query is utterly confusing, why would you check
> the first name and last name when you already compared the ID with person,
> why would you use "like" for an integer field. So many questions.
>
> In your questions you need to tells us *what* you're trying to achieve
> not just *how*.
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.