Hello,

I am trying to use SQLAlchemy to map a database that was made available to 
me, whose contents and schema cannot be altered. The database has a few 
cases where a many-to-one relationship is treated as a many-to-many - that 
is, instead of the child key being set directly onto the parent record, the 
relationship is mapped through an association table. So in the mapping it 
looks like this:

vname_association = Table('VNameFactoid', Base.metadata,
    Column('vnameKey', Integer, ForeignKey('VariantName.vnameKey')),
    Column('factoidKey', Integer, ForeignKey('Factoid.factoidKey')))

class Factoid(Base):
    __tablename__ = 'Factoid'
    tstamp = Column(Time)
    engDesc = Column(Text)
    origLDesc = Column(Text)
    factoidKey = Column(Integer, primary_key=True)
    vnameInfo = relationship("VariantName", secondary=vname_association, 
backref="factoidData")

class VariantName(Base):
    __tablename__ = 'VariantName'
    tstamp = Column(Time)
    vnameKey = Column(Integer, primary_key=True)
    name = Column(String)


This means that I can get at the variant name information from the factoid 
by saying
my_variant_name = some_factoid.vnameInfo[0].name

But it would be much nicer if I could dispense with that [0], since I know 
that there will never be more than one record returned in the list. Is 
there something I can do to be able to say this?
my_variant_name = some_factoid.vnameInfo.name

Best,
-tara

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to