[英]Flask-SQLAlchemy query in a many to many ITSELF relationship
我與自己之間存在多對多關系,也就是說,我的模型是用戶,一個字段是朋友,也就是用戶。 我已經完成了關系,但是當我嘗試為User的朋友進行查詢時,我的問題來了。 我的模型和關系如下所示:
friendship = db.Table('friends',
Column('friend_id', db.Integer, db.ForeignKey('monkeys.id')),
Column('myfriend_id', db.Integer, db.ForeignKey('monkeys.id'))
)
class Monkey (db.Model):
_tablename__ = "monkeys"
id = Column(Integer, primary_key=True)
username = Column(String(50), unique = True)
email = Column(String(120), unique = True)
password = Column(String(50))
date = Column (DateTime(), default=datetime.now())
friends = relationship('Monkey',
secondary = friendship,
primaryjoin = (friendship.c.friend_id == id),
secondaryjoin = (friendship.c.myfriend_id == id),
backref = backref('friendship', lazy = 'dynamic'),
lazy = 'dynamic')
從角度來看,如果我想查詢,我已經嘗試了一些方法
friends_list = Monkey.query.join(Monkey.friends).filter(Monkey.id == user.id).all()
但是它不起作用...請幫忙嗎? 謝謝!
您不需要自己創建聯接。
change lazy ='joined'-將在與父項相同的查詢中“緊急”加載項目。
當您收到對象“猴子”時,您已經可以訪問朋友
monkey = session.query(Monkey).get(user.id)
friends_list = monkey.friends
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.