sqlite AttributeError:‘TABLE’对象在 flask SQL化学关联表中没有属性‘TABLE’

gpfsuwkq  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(133)

我正试图在我的项目中创建购物车和订单功能。我有两个关于用户和产品的表格,这些是SqlalChemy模型正在遵循的

class Users(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(50), unique = True)
    email = db.Column(db.String(50), unique = True)
    password_hash = db.Column(db.String(500), unique = True)
    address = db.Column(db.String(50))
    cart_items = db.relationship('Products', secondary = cart_items, backref = 'user_cart')
    orders = db.relationship('Products', secondary = orders, backref = 'user_order')

class Products(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(50), unique = True)
    desc = db.Column(db.String(350))
    price = db.Column(db.Integer)

我正在尝试创建购物车和订单的关联表,在两个表的‘Quantity’中都有一个额外的列。
我编写的关联表代码如下

orders = db.Table(
    'order',
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('product_id', db.Integer), db.ForeignKey('products.id'),
    db.Column('quantity', db.Integer)
)

cart_items = db.Table(
    'cart_items',
    db.Column('user_id',db.Integer, db.ForeignKey('users.id')),
    db.Column('product_id',db.Integer, db.ForeignKey('products.id')),
    db.Column('quantity', db.Integer)
)

当我只有一个关联表CART_ITEMS时,创建的表没有任何错误。但是当我尝试创建Orders关联表时,同时通过编写代码将USERS和Products类导入到REPEL中

from model import Users, Products

我明白错误所在

AttributeError: 'Table' object has no attribute 'table'
cnjp1d6j

cnjp1d6j1#

尝试将您的代码编辑为以下内容。我想你在订单表上弄错了。

orders = db.Table(
    'order',
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('product_id', db.Integer, db.ForeignKey('products.id')),
    db.Column('quantity', db.Integer)
)

cart_items = db.Table(
    'cart_items',
    db.Column('user_id',db.Integer, db.ForeignKey('users.id')),
    db.Column('product_id',db.Integer, db.ForeignKey('products.id')),
    db.Column('quantity', db.Integer)
)

相关问题