Python 烧瓶+;SQLAlchemy邻接列表backref错误
我有以下型号:Python 烧瓶+;SQLAlchemy邻接列表backref错误,python,orm,flask,sqlalchemy,flask-sqlalchemy,Python,Orm,Flask,Sqlalchemy,Flask Sqlalchemy,我有以下型号: class Category(db.Model): __tablename__ = 'categories' id = db.Column(db.Integer, primary_key=True) parent_id = db.Column(db.Integer, db.ForeignKey(id), nullable=True) level = db.Column(db.SmallInteger) name = db.Column(d
class Category(db.Model):
__tablename__ = 'categories'
id = db.Column(db.Integer, primary_key=True)
parent_id = db.Column(db.Integer, db.ForeignKey(id), nullable=True)
level = db.Column(db.SmallInteger)
name = db.Column(db.String(200))
children = db.relationship('Category', backref=backref('parent', remote_side=id))
def __repr__(self):
return '<Category %r>' % (self.name)
我做错了什么?在这条线上
children = db.relationship('Category', backref=backref('parent', remote_side=id))
您正在使用属性backref
,但从未定义它。如果你写了
children = db.relationship('Category', backref=photosynthesis('parent', remote_side=id))
同样的问题:Python不知道什么是“光合作用”
那么,backref在代码中应该是什么呢?事实证明这是一个错误。与许多这些函数(例如,您正在使用的“关系”函数)一样,Flask SQLAlchemy将为您提供一个别名,因此您不需要直接导入它们
您可以使用作为指南。您需要的不是
backref=backref
,而是backref=db.backref
您必须明确backref是什么。您可以使用此导入执行此操作:
from sqlalchemy.orm import backref
哦,对了……我没想到。这是我的第一个python项目。我会试着把这个写回去。
from sqlalchemy.orm import backref