我不确定如何命名这个问题。我还简化了我的代码,因此更容易询问。假设我在 Pyramid 的 myproject.models 中有以下代码:
class Links(Base):
__tablename__ = 'links'
id = Column(Integer, primary_key=True)
link = Column(Text)
def __init__(self, link):
self.link = link
class Submissions(Base):
__tablename__ = 'submissions'
id = Column(Integer, primary_key=True)
title = Column(Text)
link_id = Column(Integer, ForeignKey('links.id'))
link = relationship(Links)
def __init__(self, title, link):
self.title = title
self.link = link
视图将非常简单:
def my_view(request):
dbsession = DBSession()
submissions = dbsession.query(Submissions)
return {'submissions':submissions}
我想使用 Chameleon 在我的页面上返回这个:
<p tal:repeat="thing submissions">
${thing.title} ${thing.link}
</p>
但是,${thing.link} 不显示该站点的链接。
问题:
- 如何引用 thing.link 的链接?直观地说,我会输入 ${thing.link.link},但这不起作用。
- 如何引用任意子类?我希望能够从对象的子类中提取任何属性,例如,thing.link.link、thing.link.domain、thing.link.created 等。
顺便说一句,有人请告诉我一个更好的标题来给出这个问题。