在金字塔中,模板被静态分配给
进行查看@view_config(renderer='templates/foo.pt')
def my_view(request):
return {'foo':1, 'bar':2}
但是,在某些情况下,我们希望为每个用户设置不同的模板。例如,user1
使用templates/style1/xxx.pt
和user2
中的模板使用templates/style2/xxx.pt
中的模板。因此,我们需要一种方法来动态地将模板传递给视图,而不是静态地配置它们。
无论如何都要优雅地完成任务?
答案 0 :(得分:2)
我刚刚在几天前做过这件事。
以下是ajax调用的示例代码。
@view_config(name="my_view", renderer="")
def my_view(request):
renderer = choose_renderer() #this is where you would dynamically choose what renderer you want. ex "templates/foo.pt"
data = get_my_data_for_renderer
return render_to_response(renderer, data, request)
以下是正常路线呼叫的示例
@view_config(route_name="my_view", renderer="")
def my_view(request):
renderer = choose_renderer() #this is where you would dynamically choose what renderer you want. ex "templates/foo.pt"
data = get_my_data_for_renderer
return render_to_response(renderer, data, request)
答案 1 :(得分:1)
这样的事情怎么样?我没有测试过。我从记忆中扯下来:)
在配置设置中将其添加到 init .py。
slopes
使用此视图:
config.add_route('my_view', 'my_view/{renderer}')