使用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"
)