1

次のような呼び出し可能なビューがあります。

def post_comment(request):
    """ Posts the users comment to the thread """

    try:
        new_comment = comments.post()
    except InvalidComment as e:
        return {'success' : False, 'message' : e.message}

    # need to do something like:
    new_comment = pyramid.template.render(new_comment)

    return {'success' : True, 'message' : new_comment}

このビュー callable のルート構成は次のとおりです。

config.add_route('post_comment',
                 '/comments/{link_id}/post',
                 view='site.views.post_comment',
                 view_renderer='json')

これを使用して、コメントの送信を AJAX 化し、光沢のある Web 2.0 Web サイトを作成できます。問題は、mako テンプレートを介してレンダリングnew_commentして HTML を作成し、それを返すことです。しかし、これを行う方法が見つかりません。

ビュー callable 内で mako テンプレートをレンダリングして、HTML を JSON 応答として返すにはどうすればよいですか?

4

2 に答える 2

8

renderここで文書化された Pyramid API を使用して直接呼び出すことができます: http://docs.pylonsproject.org/projects/pyramid/1.0/api/renderers.html#pyramid.renderers.render

from pyramid.renderers import render

def my_view(request)
    renderer_dict = {} # dictionary of values to pass to the renderer
    new_comment = render('new_comment.mako', renderer_dict, request)
    …
于 2011-06-13T15:29:12.813 に答える
0

あなたの質問を理解しているかどうかはわかりませんが、json 用と mako 用の 2 つのビューが必要だと思います。mako ビューについては、公式ドキュメントと mmerickel の回答に従ってください。同じクラス内に複数のビュー callable が必要な場合は、pyramid_handlersを参照してください。

于 2011-06-13T12:08:03.687 に答える