gpt4 book ai didi

python - 创建 backref 时 SQLAlchemy 关系引发参数错误

转载 作者:行者123 更新时间:2023-11-30 22:41:36 24 4
gpt4 key购买 nike

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

最佳答案

当 SQLAlchemy 尝试在 Review 上为名为 cafeCafe.cafes 关系创建 backref 时,它会找到您命名为 的列>cafe 并引发错误,指出它不能使用相同的名称。

为您的外键指定与关系/反向引用不同的名称。

cafe_name = db.Column(db.ForeignKey(Cafe.name))

或者,当外键和关系在同一模型中定义时,可以更轻松地跟踪名称。

class Cafe(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)

class Review(db.Model):
id = db.Column(db.Integer, primary_key=True)
cafe_id = db.Column(db.ForeignKey(Cafe.id))
cafe = db.relationship(Cafe, backref='reviews')

关于python - 创建 backref 时 SQLAlchemy 关系引发参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com