我正在努力建立一对多的关系,以便每个咖啡馆都可以有很多评论。但是,SQLAlchemy在定义关系时会引发ArgumentError
。如何解决此错误?
class Review(db.Model):
id = db.Column(db.Integer, primary_key=True)
cafe = db.Column(db.String, db.ForeignKey('cafe.name'))
class Cafe(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
reviews = db.relationship(Review, backref='cafe')
sqlalchemy.exc.ArgumentError: Error creating backref 'cafe' on relationship 'Cafe.cafes': property of that name exists on mapper 'Mapper|Review|review'
答案 0 :(得分:3)
当SQLAlchemy尝试在<div class="row">
<div class="col-md-3 col-xs-12">text</div>
<div class="col-md-3 col-xs-12">text</div>
<div class="col-md-3 col-xs-12">text</div>
<div class="col-md-3 col-xs-12">text</div>
</div>
上为名为Cafe.cafes
的{{1}}关系创建backref时,它会找到您命名为cafe
的列,并引发一个错误,它可以'使用相同的名称。
为您的外键提供与您的人际关系/背景不同的名称。
Review
或者,当在同一模型中定义外键和关系时,可以更容易地跟踪名称。
cafe