更新分离对象的问题

2024-05-23 13:37:10 发布

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

我有这张桌子:

class Channel(rdb.Model):
    rdb.metadata(metadata)
    rdb.tablename("channels")

    id = Column("id", Integer, primary_key=True)
    title = Column("title", String(100))
    hash = Column("hash", String(50))
    runtime = Column("runtime", Float)

    items = relationship(MediaItem, secondary="channel_items", order_by=MediaItem.position, backref="channels")

我有一个通道列表,但它们是分离的对象。我使用joinedload选项得到它们,因为我有时会对这些对象进行模拟。当我这样做时,我会更新对象。在

这一次,我尝试向分离的通道对象添加新项。代码如下:

^{pr2}$

该项已插入数据库,但不会在channel_items中创建关系。在

另外,我得到一个错误:

FlushError: New instance <Channel at 0xb75eeec> with identity key 
     (<class 'zeppelinlib.channel.ChannelTest.Channel'>, (152,)) 
     conflicts with persistent instance <Channel at 0xb598dec

这是一个问题,因为需要更新双方(服务器和数据库)的通道,所以如果我得到的错误是对象没有在服务器上更新。在

有什么想法吗?在


Tags: 对象keyidstringtitlechannelitemscolumn