繁体   English   中英

识别一对多关系 flask-sqlalchemy 是正确的方法吗?

[英]Is it proper way to identify one to many relationship flask-sqlalchemy?

class Restaurant(db.Model):
    __tablename__ = 'Restaurant'
    menu_restaurant = db.relationship('Menu', backref='Restaurant',cascade="all, delete, delete-orphan")


    restaurant_id = db.Column(db.Integer, primary_key=True,autoincrement=True)
    restaurant_name = db.Column(db.String(64),nullable=False)
    restaurant_user_id = db.Column(db.Integer, db.ForeignKey("user.user_id"), nullable=False)


    def __init__(self,restaurant_name,restaurant_user_id):
        self.restaurant_name=restaurant_name
        self.restaurant_user_id=restaurant_user_id

class Menu(db.Model):
    __tablename__ = 'menu'
    item_id = db.Column(db.Integer, primary_key=True,autoincrement=True)
    menu_restaurant_id = db.Column(db.Integer, db.ForeignKey('Restaurant.restaurant_id',ondelete='CASCADE'), nullable=False)
    item_name = db.Column(db.String(64))
    item_desc = db.Column(db.String(256))
    item_price = db.Column(db.Numeric(10, 2))
    item_image_path = db.Column(db.String(120), nullable=True)
    

    def __init__(self, menu_restaurant_id, item_name, item_desc,item_price,item_image):
        self.menu_restaurant_id = menu_restaurant_id
        self.item_name = item_name
        self.item_desc = item_desc
        self.item_price = item_price
        self.item_image = item_image

在代码上方,我想确定 Restaurant 和 Menu 之间的一对多关系。 一家餐厅有很多菜单,但每个菜单必须只与一家餐厅相关。如果不是这样,我需要你的帮助。

我认为你已经以正确的方式做到了。

在Main中记录数据时是否显示任何错误?

如果没有,那么您必须通过在 html(jinja 模板)中使用 for 循环来检查该餐厅是否有很多菜单。 我假设您熟悉 jinja 并且知道从表中检索数据(以及它们之间的关系)

只是给您一个提示,以便您可以检索该餐厅的所有菜单。

...

 extract_menus = Restaurant.query.filter_by(Restaurant.menu_restaurant).() return render_template('xyz.html', extract_menus=extract_menus)

在此之后,处理您的 html 模板。

我希望我能给你准确或接近的答案,任何建议或问题--你可以问

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM