On Jan 19, 2011, at 12:52 PM, AgentOrange wrote: > Hi Folks, > > I have been scratching my head over this one all day, so any advice > would be greatly appreciated! > > I have a pretty simple join table setup like this: > > foo foo_bar bar > ------------------------------------------- > id id_foo (unique) id > id_bar > more_stuff > > It looks like a many-to-many relationship, but it's not, since id_foo > is unique in the join table. > > - There can be any number of 'foo' for each 'bar' > - Each 'foo' has exactly one or zero 'bar' > > I have set up the required declarative stuff, and an association proxy > in 'foo' to get to 'bar' in one nice step. Since there can only ever > be one (or zero - and this is my problem) I have set it to be a > scalar. > > It all works great, except that if I try and look at the value of the > assoication proxy in a 'foo' row without a corresponding 'foo_bar', > then I get AttributeError. It is clearly looking for a 'bar' in a > 'foo_bar' that is a None (since there is no entry), so is > understandable; but in my case not desirable. > > What I would like to do is to get a 'bar' if one exists, else return a > 'None'. Is the only way to do this to write my own wrapper property > that does a try/catch? And if I do this, will the property stop being > nice and magical (you know, filterable and comparable etc..) > > I am quite a newcomer to SQLAlchemy so go easy on me!
Did you use uselist=False on foo.bar and the associationproxy? It would nice if you could show some code. http://www.sqlalchemy.org/docs/orm/extensions/associationproxy.html?highlight=uselist 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.