この質問にタイトルを付ける方法がわかりません。また、コードを簡略化したので、質問しやすくなりました。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}
カメレオンを使用してこれを自分のページに返したい:
<p tal:repeat="thing submissions">
${thing.title} ${thing.link}
</p>
ただし、${thing.link}にはサイトのリンクは表示されません。
質問:
- things.linkのリンクを参照するにはどうすればよいですか?直感的には${thing.link.link}と入力しますが、それは機能しません。
- 任意のサブクラスを参照するにはどうすればよいですか?オブジェクトのサブクラスから任意の属性を抽出できるようにしたい(たとえば、thing.link.link、thing.link.domain、thing.link.createdなど)。
ところで、誰かがこの質問をするためのより良いタイトルを教えてください。