Hello,
 I am new to SQLAlchemy and I couldn't find a way to properly associate many to 
many relation. My environment:  python 2.6,  SQLAlchemy 0.6.5, Postgres 8.4.5. 
How do I associate to a already existing row in many to many relation.

################
class Keyword(Base):
    __tablename__ = 'keywords'

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(Unicode, unique=True, nullable=False)
    description = Column(Unicode, nullable=True)

class ImageKeyword(Base):
    __tablename__ = 'image_keywords
    image_id = Column(Integer, ForeignKey('images.id', onupdate = 'CASCADE',
              ondelete = 'CASCADE'), primary_key=True)
     keyword_id = Column(Integer, ForeignKey('keywords.id', onupdate = 
'CASCADE',
                     ondelete = 'CASCADE'), primary_key=True)

class Image(Base):
  __tablename__ = "images"
  id = Column(Integer, primary_key=True)
  name = Column(Unicode, unique=True, nullable=False)

  keywords = relationship(Image,
                                      secondary="image_keyword",
                                      backref='images')
 def addKeywords(self, keywords):
        for keyword in keywords:
            self.keywords.append(Keyword(name=keyword))

# Add
session = Session()
i = Image()
i.name = "image1"
i.addKeyword(['test image', 'first image'])
session.add(i)
session.commit()

i = Image()
i.name = "image2"
i.addKeyword(['test image'])
session.add(i)
session.commit()
#This will fail because of the unique constraint of Keyword.name
# What is the proper way?

#########################

Thank you


Sujeevan Rasaratnam

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to