On Monday, April 11, 2011 8:45:38 AM UTC-4, Steffen Rhinow wrote: 
>
> Hi 
> have a problem with n:m relationships 
> My problem is that I can not add items to a table, which contains 2 
> primary keys (foreign keys) 
> Imagine I have two tables like 
>
> db.define_table('language', 
>     Field('name','string(50)', notnull=False, default=None), 
>     Field('rfc_code','string(10)', notnull=True, default=None), 
>     migrate=False) 
>
> db.define_table('country', 
>     Field('name','string(100)', notnull=True, default=None), 
>     Field('iso_code','string(8)', notnull=True, default=None), 
>     migrate=False) 
>
> I create a n:m connection with the table 
>
> db.define_table('country_has_language', 
>      Field('country_id', db.country, notnull=True, default=None), 
>      Field('language_id', db.language, notnull=True, default=None), 
>      primarykey=['country_id','language_id'], 
>      migrate=False)

 
Is this a legacy database with existing data? If not, I don't think you 
need/want to explicitly set the primary key as you have. When web2py creates 
the 'country_has_language' table, it will automatically create an 
autoincrementing id field that will serve as the primary key. See 
http://web2py.com/book/default/chapter/06#Many-to-Many.
 
Anthony

Reply via email to