Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在与关联表的多对多关系中插入数据时出错_Python_Flask_Sqlalchemy_Many To Many - Fatal编程技术网

Python 在与关联表的多对多关系中插入数据时出错

Python 在与关联表的多对多关系中插入数据时出错,python,flask,sqlalchemy,many-to-many,Python,Flask,Sqlalchemy,Many To Many,我有很多这样的数据库 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'))

我有很多这样的数据库

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)
    meals = db.relationship(
        "Meals", secondary=association_table, back_populates="orders"
    )
       
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)
    orders = db.relationship(
        "Order", secondary=association_table, back_populates="meals"
    )
我尝试将数据插入表顺序

order_to_database = Order (data='05_03_2021',
                           meals = 1
                           )

db.session.add(order_to_database)
db.session.commit()
膳食是膳食的id。我认为这是一个错误:


如何解决此问题?

在使用
db时。关系
ORM期望
fines
应该是
fines
的实例,而不是整数

breakfast_meal = Meal(id=1,title='Lunch',price=9)

order_to_database = Order(data='05_03_2021')
order_to_database.meals.append(breakfast_meal)

db.session.add(order_to_database)

db.session.commit()
如果您正在使用数据库中已有的膳食,则可以执行以下操作:

   lunch_meal = Meal.query.filter(Meal.id==10).first()
   ....
   order_to_database.meals.append(lunch_meal)
   ....
   db.session.commit()

fines
应该是
fines
的实例,而不是整数。我应该如何在表中插入数据?