У меня есть отношение многие ко многим между объектами Di sh и Menu:
class Dish(db.Model):
__tablename__='dish'
id = db.Column(db.Integer, primary_key=True)
dish_name = db.Column(db.String(50)) # name given by user
created = db.Column(db.DateTime, default=func.now())
user_id = db.Column(db.Integer, db.ForeignKey('users.id')) # new
menu_id = db.Column(db.Integer, db.ForeignKey('menu.id'))
menu = db.relationship('Menu',
back_populates='dishes',
uselist=False)
и:
class Menu(db.Model):
__tablename__='menu'
id = db.Column(db.Integer, primary_key=True)
created = db.Column(db.DateTime, default=func.now(), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
dishes = db.relationship('Dish',
back_populates='menu',
uselist=True)
, также у меня есть пользователь:
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
menu = db.relationship("Menu",
backref=db.backref('user'),
uselist=True)
Я знаю, что могу удалить 'di sh' из таблицы Di sh следующим образом:
dish = 'pasta'
db.session.query(Dish).filter(Dish.dish_name==dish).delete()
Но мне нужно удалить этот элемент, удалить его из Меню и убедитесь, что таблицы удалены только от этого конкретного пользователя, запросив:
user = User.query.filter_by(id=user_id).first().
ВОПРОС
Как удалить 'di sh' из Di sh, Меню и отфильтровать (присоединиться?) их по user.id?