Flask SQLalchemy-访问子级属性

时间:2018-09-26 00:21:35

标签: flask-sqlalchemy

给出以下模型:

class User(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    menu = db.relationship("Menu",
                    backref=db.backref('user'), 
                    uselist=True)

class Menu(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    dishes = db.relationship('Dish',
                            back_populates='menu',
                            uselist=True)

class Dish(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    select = db.Column(db.String(50))
    menu_id = db.Column(db.Integer, db.ForeignKey('menu.id'))
    menu = db.relationship('Menu',
                    back_populates='dishes',
                    uselist=False)

我想使用以下语法访问属性:

User.menu.dishes

例如,为了:

User.menu.dishes.append(pasta)

为此,我尝试访问子子Dish

query = User.query.join(User.menu,Dish).filter(Dish.select=='pasta').first()

但这不会缩小我的查询范围,而是返回所有User个属性...

根据上述模型,访问项目的正确方法是什么?

0 个答案:

没有答案