On Jan 21, 2011, at 12:29 PM, Hector Blanco wrote:

> Hello list!
> 
> I have a couple of classes. One of the behaves as the container of the other:
> 
> class ContainerOfSamples(declarativeBase):
>       __tablename__ = "containers"
> 
>       _id = Column("id", Integer, primary_key=True)
>       _samples = relationship("Samples", cascade="all, delete", 
> collection_class=set)
> 
>       def setSamples(self, samples):
>               self._samples = samples
> 
>       def getSamples(self):
>               return self._samples
> 
>       def addSample(self, sample):
>               self._samples.add(sample)
> 
>       id = sqlalchemy.orm.synonym('_id', descriptor=property(getId, setId))
>       samples = sqlalchemy.orm.synonym('_samples',
>                                       descriptor=property(getSamples, 
> setSamples))
> 
> 
> class Sample(declarativeBase):
>       __tablename__ = "containers"
> 
>       _id = Column("id", Integer, primary_key=True)
>       _whatever = Column("whatever", String(20))
>       _containerId = Column("container_id", Integer, 
> ForeignKey("containers.id"))
>       _container = relationship("Container", uselist=False)
> 
>       def __hash__(self):
>               return int(self.id)
> 
>       def setContainer(self, container):
>               self._container = container
> 
>       def getContainer(self):
>               return self._container
> 
>       id = sqlalchemy.orm.synonym('_id', descriptor=property(getId, setId))
>       whatever = sqlalchemy.orm.synonym('_whatever',
>                                       descriptor=property(getWhatever, 
> setWhatever))
>       container = sqlalchemy.orm.synonym('_container',
>                                       descriptor=property(getContainer, 
> setContainer))
> 
> 
> sample = Sample()
> container = ContainerOfSamples()
> sample.container(container)

I don't understand the need for the synonyms, but shouldn't this be as simple 
as "sample.container = container"? The relationship on sample is already 
defined... maybe you are confused because you think you need these getters and 
setters- in the above example, I don't see any need for them.

Cheers,
M

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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