使用python在sql中上载数据时出错

使用python在sql中上载数据时出错,python,sql,postgresql,flask,flask-sqlalchemy,Python,Sql,Postgresql,Flask,Flask Sqlalchemy,我需要制作这样的数据: - Table user -- id -- mail (mail) -- password (password) -- orders (orders, relation) – Table dish -- id -- name (title) -- price (price) -- description (description) -- picture (picture) -- category (category, relation) – Category tabl

我需要制作这样的数据:

- Table user
-- id
-- mail (mail)
-- password (password)
-- orders (orders, relation)

– Table dish
-- id
-- name (title)
-- price (price)
-- description (description)
-- picture (picture)
-- category (category, relation)

– Category table
-- id
-- name (title)
-- dishes (meals, ratio)
    
– The orders table
–– id
-- date
-- amount
-- status
-- mail
-- phone
-- address
-- list of dishes in the order (many2many)
我试着在烧瓶里做:

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    mail = db.Column(db.String)
    password = db.Column(db.String)
    orders = db.relationship("Order", back_populates='user')


####!!!!!!!!!!!!!!!!!!!!!!#########
association_table = db.Table('association',
                             db.Column('meal_id', db.Integer, db.ForeignKey('meals.id')),
                             db.Column('order_id', db.Integer, db.ForeignKey('orders.id'))
                             )

class Order(db.Model):
    __tablename__ = 'orders'
    id = db.Column(db.Integer, primary_key=True)
    data = db.Column(db.String)
    summ = db.Column(db.Float)
    status = db.Column(db.String)
    mail = db.Column(db.String)
    phone = db.Column(db.String)
    adresses = db.Column(db.String)
    user = db.relationship("User")
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    meals = db.relationship(
        "Meals", secondary=association_table, back_populates="meals"
    )

    ####    –– список блюд в заказе(можно через запятую, можно many2many)

class Meals(db.Model):
    __tablename__ = 'meals'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, unique=True)
    price = db.Column(db.Float)
    description = db.Column(db.String, unique=True)
    picture = db.Column(db.String, unique=True)
    category = db.relationship("Category")
    category_id = db.Column(db.Integer, db.ForeignKey('categories.id'))
    orders = db.relationship(
        "Order", secondary=association_table, back_populates="orders"
    )



class Category(db.Model):
    __tablename__ = 'categories'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, unique=True)
    meals = db.relationship("Meals", back_populates='category')
当我尝试将数据上载到数据库时,出现错误:

sqlalchemy.exc.InvalidRequestError:映射器“映射的类膳食->膳食”没有属性“膳食”


我该如何解决我的问题?

您的back\u populates属性似乎没有正确设置

meals = db.relationship(
    "Meals", secondary=association_table, back_populates="meals"
)
应该是

meals = db.relationship(
    "Meals", secondary=association_table, back_populates="orders"
)
orders = db.relationship(
    "Order", secondary=association_table, back_populates="meals"
)

应该是

meals = db.relationship(
    "Meals", secondary=association_table, back_populates="orders"
)
orders = db.relationship(
    "Order", secondary=association_table, back_populates="meals"
)