添加关系时,flaskSQLAlchemy:“NoneType”对象没有属性“filter\u by”错误

2024-09-30 20:26:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为我的数据库创建以下结构:

我有一个父类UserModel,其中ChefModel和{}作为子类。在我尝试添加OrderModel和这两个类之间的关系之前,一切正常。对UserModelChefModel的所有调用都会出现以下错误。例如,当我想找厨师时:

    File "C:\Users\Moham\Documents\Food order\resources\chef.py", line 60, in get
    users = ChefModel.query.filter_by(active = True).all()
AttributeError: 'NoneType' object has no attribute 'filter_by'

这是我的支票模型:

^{pr2}$

客户型号:

class CustomerModel(UserModel):
    __tablename__ = 'customers'
    id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key = True)   
    __mapper_args__ = {'polymorphic_identity':'customers'}

和订单型号:

class OrderModel(db.Model):
    __tablename__ = 'orders'
    order_id = db.Column(db.Integer, primary_key = True)    
    updated_date = db.Column(db.DateTime, default=datetime.utcnow())
    description = db.Column(db.String(254)) 
    food_items = db.relationship("FoodItemModel", secondary = association_table)
    customer_id = db.relationship(db.Integer, db.ForeignKey('customers.id')) //if remove this line
    chef_id = db.relationship(db.Integer, db.ForeignKey('chefs.id')) //and this line, calls are normal

我做错什么了?在


Tags: idtruedblineordercolumnintegerusers
1条回答
网友
1楼 · 发布于 2024-09-30 20:26:22

我认为您错误地指定了OrderModel中的customer_id和chef_id列。尝试这样做:

class OrderModel(db.Model):
    __tablename__ = 'orders'
    order_id = db.Column(db.Integer, primary_key = True)
    updated_date = db.Column(db.DateTime, default=datetime.utcnow())
    description = db.Column(db.String(254)) 
    customer_id = db.Column(db.Integer, db.ForeignKey("customers.id"))
    chef_id = db.Column(db.Integer, db.ForeignKey("chefs.id"))

相关问题 更多 >