データと2つの画像ファイルでページを設定する3つのピラミッドview_callablesがあります。問題は、画像(ファイル応答)の1つだけが返されることです。一度に返せる画像は1枚だけのようです。ファイル応答vcの1つを削除すると、他の画像が返されます。ただし、両方のファイルがvcを応答している場合は、2番目のイメージのみが返されます。2番目のVCで上書きしている最初のVCにオブジェクトがありますか?
# title
最初のVC内であっても、両方のイメージ(ファイル)を返すためのより良い方法はありますか?今のところ、うまくいったとしても、1つのテンプレートに対して同じドキュメントをデータベースから3回取得する必要があります。アドバイスや手がかりをいただければ幸いです。
# title
@view_config(
route_name='title',
renderer='templates/titles/title.jinja2')
def title(request):
title = Title().find_one({'_id':ObjectId(request.matchdict['_id'])})
result = dict(
user = request.user,
title = title)
return result
# view title image
@view_config(route_name="view_title_image")
def jpg(request):
fd = Title().find_one({'_id':ObjectId(request.matchdict['title_id'])}).TitleImage
response = Response(content_type='application/jpg')
response.app_iter = fd.File
print fd
return response
# view trailer thumbnail
@view_config(route_name="view_trailer_thumbnail")
def jpg(request):
fd = Title().find_one({'_id':ObjectId(request.matchdict['title_id'])}).TrailerThumbnail
response = Response(content_type='application/jpg')
response.app_iter = fd.File
print fd
return response
からのルート設定は次の__init__
とおりです。
# title
config.add_route('title', '/title/{_id}')
# view title image
config.add_route('view_title_image', '/view/title_image/{title_id}')
# view title image
config.add_route('view_trailer_thumbnail', '/view/trailer_thumbnail/{title_id}')
これは、Jinja2テンプレートでの使用方法です。
<img src="/view/title_image/{{ title._id }}">
<img src="/view/trailer_thumbnail/{{ title._id }}">