Tôi cần trợ giúp tạo truy vấn SqlAlchemy.SqlAlchemy và Flask, cách truy vấn mối quan hệ nhiều-nhiều
Tôi đang thực hiện dự án Flask, nơi tôi đang sử dụng SqlAlchemy. Tôi đã tạo 3 bảng: Restaurant, Dish và restaurant_dish trong tệp models.py của tôi.
restaurant_dish = db.Table('restaurant_dish',
db.Column('dish_id', db.Integer, db.ForeignKey('dish.id')),
db.Column('restaurant_id', db.Integer, db.ForeignKey('restaurant.id'))
)
class Restaurant(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), index = True)
restaurant_dish = db.relationship('Dish', secondary=restaurant_dish,
backref=db.backref('dishes', lazy='dynamic'))
class Dish(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), index = True)
info = db.Column(db.String(256), index = True)
Tôi đã thêm dữ liệu vào bảng restaurant_dish và nó sẽ hoạt động chính xác. Tôi cần giúp đỡ ở đâu là hiểu được cách lấy đúng một Món ăn bằng cách sử dụng Nhà hàng. Liệu SQL sẽ là một cái gì đó như thế này:
SELECT dish_id FROM restaurant_dish WHERE restaurant_id == id
Những gì tôi đã quản lý để có được thực hiện nhưng không làm việc:
x = Restaurant.query.filter_by(Restaurant.restaurant_dish.contains(name)).all()
Nhờ sự giúp đỡ và tôi cũng đánh giá cao sự hướng dẫn mà có thể chỉ cho tôi đi đúng hướng (tài liệu chính thức đi qua đầu của tôi).
Cảm ơn bạn. Đó là cách chính xác để làm điều đó. :) – cancerballs
Sau khi tìm kiếm giờ, 'Dish.restaurant.any' chính xác là những gì tôi đang tìm kiếm! +1 cho bạn! – Matthew
câu trả lời này tốt hơn bất kỳ tài liệu nào. – user455318