Supposons que j'ai 3 tables dans sqlalchemy. Utilisateurs, rôles et UserRoles définis de manière déclarative. Comment peut-on penser à faire quelque chose comme ceci:sqlalchemy relations et requête sur les relations
user = Users.query.get(1) # get user with id = 1
user_roles = user.roles.query.limit(10).all()
Actuellement, si je veux les rôles utilisateur, je dois interroger l'un des 3 tables et effectuer les jointures afin d'obtenir les résultats escomptés. Appeler directement user.roles
apporte une liste d'éléments que je ne peux pas filtrer ou limiter, donc ce n'est pas très utile. Rejoindre des choses n'est pas très utile non plus puisque j'essaye de faire une interface de repos avec des demandes telles que: localhost/users/1/roles
donc juste par cette requête je dois être capable de faire Users.query.get(1).roles.limit(10) etc etc
qui devrait vraiment "améliorer" mon interface de repos sans trop code pléthorique et si conditionnel et sans avoir à savoir quelle table rejoindre sur quoi. Le modèle des utilisateurs a déjà les rôles en tant que propriété de relation, alors pourquoi ne puis-je pas simplement interroger une propriété de relation comme je le fais avec les modèles normaux?