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.