Potrzebuję pomocy w tworzeniu zapytania SqlAlchemy.SqlAlchemy and Flask, jak zapytać wiele do wielu relacji
Robię projekt Flask, w którym używam SqlAlchemy. Stworzyłem 3 tabele: Restaurant, Dish i restaurant_dish w moim pliku models.py.
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)
Dodałem dane do tabeli restaurant_dish i powinno działać poprawnie. Gdzie potrzebuję pomocy, to zrozumienie, jak poprawnie uzyskać Dish za pomocą restauracji. Raw SQL byłoby coś takiego:
SELECT dish_id FROM restaurant_dish WHERE restaurant_id == id
Co udało mi się załatwić, ale nie działa:
x = Restaurant.query.filter_by(Restaurant.restaurant_dish.contains(name)).all()
Dzięki za pomoc i Doceniam również tutoriale, które może wskazać mi w dobrym kierunku (oficjalna dokumentacja przechodzi mi przez głowę).
Dziękuję Ci. To był właściwy sposób, aby to zrobić. :) – cancerballs
Po wyszukiwaniu godzin, 'Dish.restaurant.any' było dokładnie tym, czego szukałem! +1 do ciebie! – Matthew
ta odpowiedź jest lepsza niż jakakolwiek dokumentacja. – user455318