sqlalchemy表类中带有继承参数的CompileError

2024-06-24 13:01:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个SQLalchemy类(flask SQLalchemy),它继承了另一个类,如下所示

class Cat(db.Model, Category):
    __tablename__ = 'Cat'
    id = db.Column(db.String(1000), primary_key=True, nullable=False)
    parent_id = db.Column(db.String(1000), db.ForeignKey('SocArxivCategory.id'))

    parent_category = db.relationship('Cat',
                                      backref=db.backref('children',
                                                         order_by=Category.name,
                                                         lazy='selectin'),
                                      remote_side='Cat.id')

父类是

^{pr2}$

您可以看到Cat表使用类别名称属性。但这似乎导致了一个错误

....
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py", line 692, in _fallback_column_name
    raise exc.CompileError("Cannot compile Column object until "
CompileError: Cannot compile Column object until its 'name' is assigned.

所以它似乎试图在继承name属性之前建立关系?我不确定这是SQLalchemy问题还是Python问题?你知道怎么解决这个问题吗?在


Tags: nameiddbstring属性objectsqlalchemycolumn
1条回答
网友
1楼 · 发布于 2024-06-24 13:01:18

好吧,经过一点搜索和更多的咨询sqlalchemy文档,我找到了一个解决方案。将关系的定义更改为

parent_category = db.relationship('Cat',
                                  backref=db.backref('children',
                                                     order_by=lambda: Cat.name,
                                                     lazy='selectin'),
                                  remote_side='Cat.id')

成功了

相关问题 更多 >