What is this line all about?
db.t_user_has_companies.first_name.requires=IS_NOT_IN_DB(db(db.t_user_has_companies.f_coname==request.vars.f_coname),db.t_user_has_companies.first_name)
Also, these lines in your t_user_has_companies table def don't match what
you say about them.
>>> Field('first_name', 'reference auth_user', label='User',
writable=True, readable=True, notnull=True, required=True, ondelete='NO
ACTION', requires=IS_IN_DB(db, db.auth_user, '%(id)s %(first_name)s
%(last_name)s')),
>>> Field('f_coname', 'reference t_companies', label='Company',
writable=True, readable=True, notnull=True, required=True, ondelete='NO
ACTION', requires=IS_IN_DB(db, db.t_companies, '%(id)s %(f_coname)s'))
>>>I also defined User_Has_Companies which has 2 columns USER_ID and
COMP_ID together should form a PK.
You don't need the "required" attributes as they are covered by IS_IN_DB.
Why do you have the ondelete in there?
DAL doesn't support multi-column primary keys.
This is awfully ambitious. Why don't you cut out a lot of the code and see
if you can get it working something like the example in the on-line manual?
On Friday, December 13, 2013 3:48:14 PM UTC-5, Michel Hayek wrote:
>
> Hi guys,
>
> I have 2 tables defined Auth_User(PK=id) and Companies(PK=ID)
> I also defined User_Has_Companies which has 2 columns USER_ID and COMP_ID
> together should form a PK.
>
> *db.py:*
>
>
>
> *#################################db.define_table('t_companies',
> Field('f_coname',label='Company Name', required=True,ondelete='NO
> ACTION',notnull=True), Field('f_comanager',label='Company
> Manager', required=False,ondelete='NO ACTION',notnull=False),
> Field('f_coemail',label='Company Email', required=False,ondelete='NO
> ACTION',notnull=False) )db.t_companies.f_coemail.requires =
> IS_EMAIL(error_message='invalid
> email!')####################################*
> *db.define_table('t_user_has_companies',*
> * Field('first_name', 'reference auth_user', label='User',
> writable=True, readable=True, notnull=True, required=True, ondelete='NO
> ACTION', requires=IS_IN_DB(db, db.auth_user, '%(id)s %(first_name)s
> %(last_name)s')),*
> * Field('f_coname', 'reference t_companies',
> label='Company', writable=True, readable=True, notnull=True, required=True,
> ondelete='NO ACTION', requires=IS_IN_DB(db, db.t_companies, '%(id)s
> %(f_coname)s'))*
> * )*
>
> *db.t_user_has_companies.first_name.requires=IS_NOT_IN_DB(db(db.t_user_has_companies.f_coname==request.vars.f_coname),db.t_user_has_companies.first_name)*
>
> *In default.py:*
> *@auth.requires_login()*
> *def usercompanies():*
> * grid=SQLFORM.grid(db.t_user_has_companies)*
> * return locals()*
>
> it works fine but the problem is i only get one drop down for the
> companies, as for the User it appears a text box. How this one also be set
> to drop down box?
>
> Thanks
>
--
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/groups/opt_out.