在混音中使用外键

2024-04-19 20:54:50 发布

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

我试图用sqlalchemy将图形跟踪及其序列存储在两个单独的表中。你知道吗

同一图形上的跟踪列表存储在ListContainer表中。每个ListItem表示跟踪中的一个项。每个跟踪项都有一个指向其跟踪的外键,因为我想指出它在跟踪中的位置。你知道吗

这是我当前的代码:

#store traces
class ListContainer():
        id = Column(Integer, primary_key=True)
        # timestamp = Column(DateTime, default=datetime.datetime.now())
        name = Column(String)
#endclass

#store flow in traces
class ListItem():
        id = Column(Integer, primary_key=True)
        @declared_attr
        trace_id = Column(Integer, ForeignKey(ListContainer.id))
        item_pos = Column(Integer)
        #start_ea
        #end-ea
#endclass

class Trace(Base, ListContainer):
        __tablename__="trace_table"


class TraceItem(Base, ListItem):
        __tablename__="trace_items"
        start_ea = Column(String)

但是,我当前遇到以下错误:

    trace_id = Column(Integer, ForeignKey(ListContainer.id))
           ^
SyntaxError: invalid syntax

使用mixin类向表中添加ForeignKey的正确方法是什么?你知道吗


Tags: storekeyidtrue图形tracecolumninteger
1条回答
网友
1楼 · 发布于 2024-04-19 20:54:50

您只能修饰函数,所以这就是语法错误的来源。你知道吗

如果follow the docs,您将看到mixin中的外键应该包含在修饰函数中。你知道吗

class ListItem(object):
    # ...

    @declared_attr
    def trace_id(cls):
        return Column(Integer, ForeignKey(ListContainer.id))

    # ...

相关问题 更多 >