给出以下模型:
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
个属性...
根据上述模型,访问项目的正确方法是什么?