SQLAlchemy关系在创建backref时引发Argument错误

时间:2017-02-26 19:34:40

标签: python sqlalchemy

我正在努力建立一对多的关系,以便每个咖啡馆都可以有很多评论。但是,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'

1 个答案:

答案 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