Thanx Maxim.

I tried this example, I am facing proble while inserting the records..
here is the snippet how i am inserting records...
plz hav a look on it...



group.users.append(user)
project.project_users.append(group)



projects is the relation defined in Project class


class Project(DeclarativeBase):
    
    __tablename__ = 't_project'
    
    #Columns
    project_id = Column(Integer, autoincrement=True, primary_key=True)
    
    project_name = Column(Unicode(80), unique=True, nullable=False)
    
    project_type = Column(Unicode(80), nullable=False)
    
    
    project_users = relation('User', secondary=auth.user_group_table,
backref='t_project')







On Thu, 2011-02-17 at 03:54 -0800, Maxim Oganesyan wrote:
> Let's see.
> > #association table
> > user_group_table = Table('t_user_group', metadata,
> >     Column('user_id', Integer, ForeignKey('t_user.user_id',
> >         onupdate="CASCADE", ondelete="CASCADE")),
> >     Column('group_id', Integer, ForeignKey('t_group.group_id',
> >         onupdate="CASCADE", ondelete="CASCADE")),
> >    Column('project_id', Integer, ForeignKey('t_project.project_id',
> >         onupdate="CASCADE", ondelete="CASCADE"))
> > )
> 1. Your table has no primary key.
> 2. Your table has 3 assotiatin columns. I attempt to avoid 3 columns
> in assotiaition table. If I have more than 2 columns, I use surrogate
> primary key.
> 
> First of all, try:
>  user_group_table = Table('t_user_group', metadata,
>      Column('user_id', Integer, ForeignKey('t_user.user_id',
>          onupdate="CASCADE", ondelete="CASCADE"), primary_key=True),
>      Column('group_id', Integer, ForeignKey('t_group.group_id',
>          onupdate="CASCADE", ondelete="CASCADE"), primary_key=True),
>     Column('project_id', Integer, ForeignKey('t_project.project_id',
>          onupdate="CASCADE", ondelete="CASCADE"), primary_key=True)
>  )
> Maybe it would be enough.
> 
> If not, try another table:
>  user_group_table = Table('t_user_group', metadata,
>      Column('id', Integer, autoincrement=True, primary_key=True),
>      Column('user_id', Integer, ForeignKey('t_user.user_id',
>          onupdate="CASCADE", ondelete="CASCADE")),
>      Column('group_id', Integer, ForeignKey('t_group.group_id',
>          onupdate="CASCADE", ondelete="CASCADE")),
>      Column('project_id', Integer, ForeignKey('t_project.project_id',
>          onupdate="CASCADE", ondelete="CASCADE"))
>  )
> 
> I hope, it will be useful info.
> Maxim.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to