Oh, and Stack has __tablename__ = "stack" and Resource has __tablename__ = 
"resource" just to reduce any confusion.

On Thursday, September 6, 2012 6:55:22 PM UTC-4, Kuba Dolecki wrote:
>
> Hello,
>
> I have been struggling for a few hours with the following issue. First, 
> the models:
>
> stack_resources = db.Table('stack_resources',
>     db.Column('stack_id', db.Integer, db.ForeignKey('stack.id')),
>     db.Column('resource_id', db.Integer, db.ForeignKey('resource.id'))
> )
>
> class Stack(BaseObject, db.Model):
>     id = some primary key
>     
>     resources = db.relation('Resource',
>         secondary=stack_resources,
>         secondaryjoin="and_(Resource.id==stack_resources.c.resource_id, \
>                      Resource.top_parent_resource==True)",
>         backref=db.backref('stacks'))
>
> class Resource(BaseObject, db.Model):
>     id = some primary key
>
>     top_parent_resource = db.Column(db.Boolean)
>
> The issue lies with the query emitted. Here's the query for getting the 
> Resources associated with a stack:
>
> SELECT ALL THE THINGS FROM RESOURCES
> FROM resource, stack_resources 
> WHERE %s = stack_resources.stack_id AND resource.id = 
> stack_resources.resource_id AND resource.top_parent_resource = %s
>
> Basically, what appears to be missing is "AND stack.id = 
> stack_resources.stack_id". Anything I'm missing in the relationship 
> configuration that would make that happen?
>
> Thank you,
> Kuba
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/yVBv6MhJzlwJ.
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