Limiting Relationship Depths

6 views
Skip to first unread message

Michael P. McDonnell

unread,
Jun 25, 2019, 7:13:46 PM6/25/19
to sqlal...@googlegroups.com
Hey team - 

I was wondering - is it possible to limit the depth of objects by which SA will populate members?

Say I have a Person who is on a Team that plays a Game

class Person(Base):
  # .....
  team = relationship("Team", uselist=False)
class Team(Base):
  # .....
  game = relationship("Game", uselist=False)
 class Game(Base):
  # ....

If I get a person - I don't want it to go all the way down and grab the game object. Just the team one.

Is there a setting that makes that easy?

Jonathan Vanasco

unread,
Jun 26, 2019, 11:58:22 AM6/26/19
to sqlalchemy
This section of the narrative dogs will help you configure the relationship as you want.

   https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html

In terms of API docs, 

     https://docs.sqlalchemy.org/en/13/orm/relationship_api.html

look for the `lazy` keyword

Michael P. McDonnell

unread,
Jun 26, 2019, 4:01:31 PM6/26/19
to sqlal...@googlegroups.com
Awesome, thank you Jonathan. 

I know I've read that at least 3-4 times, but I think I've been staring at the screen too much these days to actually read. I'll give it a go and let you know how it goes!

--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
 
http://www.sqlalchemy.org/
 
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description.
---
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+...@googlegroups.com.
To post to this group, send email to sqlal...@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/e4b5b44a-2764-4d89-8fa1-e529fad821d5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jonathan Vanasco

unread,
Jun 27, 2019, 11:54:42 AM6/27/19
to sqlalchemy


On Wednesday, June 26, 2019 at 4:01:31 PM UTC-4, Michael P. McDonnell wrote:
Awesome, thank you Jonathan. 

I know I've read that at least 3-4 times, but I think I've been staring at the screen too much these days to actually read. I'll give it a go and let you know how it goes!


SqlAlchemy doesn't fetch the relationship by default.  You have to configure it to via 'lazy'; and tell it to fetch more things via dynamic loading options on the query.  

Staring at the docs a while is a good thing.  Very shortly it will make sense --  i promise!  And if you do things wrong, post your example here and we'll all help you figure it out.


Reply all
Reply to author
Forward
0 new messages