【发布时间】:2019-08-02 05:26:48
【问题描述】:
我正在尝试修改pyramid_blogr 示例。唯一最近的 QA 线程是 this one 和该线程中提到的 link。我经历了他们两个。我正在使用具体继承,据我了解将为每个模型创建单独的表。不过,当我从第二个模型查询记录时,我收到错误消息,指出该模型确实具有标题之类的列或在 TaggedBlogRecord 中创建的列。
错误
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: ====> entries.created <======
[SQL: SELECT entrieslanguage.id AS entrieslanguage_id
FROM entrieslanguage ORDER BY entries.created DESC
LIMIT ? OFFSET ?]
示例代码如下
class BlogRecord(Base):
__tablename__ = 'entries'
id = Column(Integer, primary_key=True)
title = Column(Unicode(255), unique=True, nullable=False)
body = Column(UnicodeText, default=u'')
created = Column(DateTime, default=datetime.datetime.utcnow)
edited = Column(DateTime, default=datetime.datetime.utcnow)
class TaggedBlogRecord(BlogRecord):
__tablename__ = 'taggedentries'
__mapper_args__ = {'concrete':True}
id = Column(Integer, primary_key=True)
tags = Column(Unicode(255))
【问题讨论】:
-
是否也更新了更新数据库的脚本,然后运行脚本?
-
是的,我做到了。我忽略了@Michael Merickel 的回答。派生模型不会隐式继承表字段。
标签: python python-3.x sqlalchemy pyramid