gpt4 book ai didi

python - 属性错误 : 'unicode' object has no attribute '_sa_instance_state'

转载 作者:太空狗 更新时间:2023-10-29 20:20:41 24 4
gpt4 key购买 nike

我正在学习如何使用 SQLAlchemy。我正在尝试执行以下操作,但将标题和链接存储在两个单独的表中:

temp = Submissions(title=u'Facebook Homepage', link=u'http://facebook.com')
session.add(temp)
session.flush()
transaction.commit()

通过:

class Links(Base):
__tablename__ = 'links'
id = Column(Integer, primary_key=True)
link = Column(Text)
created = Column(TIMESTAMP(), default=datetime.now())

def __init__(self, link):
self.link = link

class Submissions(Base):
__tablename__ = 'submissions'
id = Column(Integer, primary_key=True)
created = Column(TIMESTAMP(), default=datetime.now())
title = Column(Text)
link_id = Column(Integer, ForeignKey('links.id'))
link = relation(Links)

def __init__(self, title, link):
self.title = title
self.link = link

但是,我总是得到这个错误:

AttributeError: 'unicode' object has no attribute '_sa_instance_state'

这是怎么回事?有没有更好的编码方式?

最佳答案

你不能用 relationship 做到这一点。

您需要安排以某种方式查找链接

最明显的是直接查找。

submission_link = session.query(Links) \
.filter(Links.link == u'http://facebook.com') \
.first()
if submission_link is None:
submission_link = Links(link=u'http://facebook.com')
session.add(submission_link)

submission = Submissions(title=u'Facebook Homepage', link=submission_link)
session.add(submission)
session.commit()

您还可以使用 hybrid attributes得到看起来更像你的例子的东西,但实际上更复杂。

此外,它是relationshiprelation 已弃用。

关于python - 属性错误 : 'unicode' object has no attribute '_sa_instance_state' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296296/

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