flask-sqlalchemy一对多的问题

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

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


回答:

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

user = CmfUser.query.filter_by(user_nickname = 'eddy').first()

print(user.favorites)

以上是 flask-sqlalchemy一对多的问题 的全部内容, 来源链接: utcz.com/a/156387.html

回到顶部