我有两个表,News
和Files
:
# unrelated columns removed
class News(db.Model):
id = db.Column(db.Integer, primary_key=True)
file_id_logo = db.Column(db.Integer, db.ForeignKey('files.id'))
logo = db.relationship('File', lazy=False)
class File(db.Model):
id = db.Column(db.Integer, primary_key=True)
news_id = db.Column(db.Integer, db.ForeignKey('news.id'))
news = db.relationship('News', lazy=False, backref=db.backref('files'))
在添加了file_id_logo
的外键后,SQLalchemy引发了CircularDependencyError错误。我已经尝试在logo
关系中使用post_update=True
,但没有改变任何内容。
有什么正确的解决方法吗?
以下情况可能会出现(在某些情况下可能很重要):
- 一个文件没有或恰好分配了一个新闻。
- 如果一个文件没有新闻,则也没有以此文件作为其标志的新闻。
- 可以为单个新闻设置多个文件,但这些文件中只能有一个是其
logo
。 - 因此,如果一条新闻有一个
logo
,则引用的文件也必须有此新闻作为其news
。