[英]SQLAlchemy Inserting Data in a Many-to-Many Relationship with Association Table
[英]Error while inseting flask SQLAlchemy Inserting Data in a Many-to-Many Relationship with Association Table
我有這樣的數據庫,關系為many2many
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()
膳食是膳食的標識。 我 go 錯誤:
我應該如何解決這個問題?
使用db.relationship
時,ORM 期望meals
應該是Meals
實例,而不是 integer。
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.