flask-sqlalchemy一对多的问题

新手上路,请多包涵

`class CmfUser(db.Model):

id = db.Column(db.Integer, primary_key=True)  
user_nickname = db.Column(db.String(80), unique=True)  
user_email = db.Column(db.String(120))  
favorites = db.relationship('CmfUserFavorite', backref='user', lazy='dynamic')  



class CmfUserFavorite(db.Model):

id = db.Column(db.Integer, primary_key=True)  
title = db.Column(db.String(100))  
user_id = db.Column(db.Integer, db.ForeignKey('cmf_user.id'))`

这里是我声明的两个类,关系对于大佬们来说一目了然
新人学习flask,不知道哪里定义出了问题,
如果用用户其中一个爱好查询用户信息是可以的
u = CmfUserFavorite.query.filter(CmfUserFavorite.title == '222').first() # ✅ u.user返回正确

但是如果查询用户,然后查询他所有的爱好就只返回sql语句。。。。

f = CmfUser.query.filter(CmfUser.user_nickname == 'eddy').first() # ❌ f.favorites 返回语句

语句是
SELECT cmf_user_favorite.id AS cmf_user_favorite_id, cmf_user_favorite.title AS cmf_user_favorite_title, cmf_user_favorite.user_id AS cmf_user_favorite_user_id FROM cmf_user_favorite WHERE %(param_1)s = cmf_user_favorite.user_id

谢谢了,找了半天了,无果

阅读 2.1k
1 个回答

查询他所有的爱好该这样写

user = CmfUser.query.filter_by(user_nickname = 'eddy').first()
print(user.favorites)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题