7 votes

SQLAlchemy : Rétro-référence chargée dynamiquement vers un autre module

Supposons que j'ai un modèle d'utilisateur dans un module.

class User(Model):
    id = Column(Integer, primary_key=True)

Ensuite, je veux ajouter une relation many-to-one chargée dynamiquement vers User à partir d'un modèle Post dans un autre module. Je ne veux pas non plus "polluer" la définition du modèle de l'utilisateur avec des relations provenant de cet autre module.

Existe-t-il un moyen plus propre de faire cela que d'ajouter un champ à la classe User depuis l'extérieur du modèle Post, comme ceci ?

class Post(Model):
    user_id = Column(Integer, ForeignKey('user.id'))

User.posts = relationship('Post', backref='user', lazy='dynamic')

Merci

15voto

van Points 18052

Eh bien, vous pouvez le définir dans le modèle Post (voir ci-dessous)

class Post(Model):
    user_id = Column(Integer, ForeignKey('user.id'))
    user = relationship('User', backref=backref('posts', lazy='dynamic'))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X