如何在python金字塔中使用动态模板

时间:2019-03-15 16:39:42

标签: python jinja2 pyramid

我已经完成了网站的开发,但是工作正常,但是我试图通过添加动态模板来优化我的网站,并希望确保是否可以在金字塔python上完成。

例如,在我的jinja模板中,我具有以下内容:

{% block article_detail %}
    <form action="{{request.route_url('Sports_News_Action',action=action)}}" method="post" class="form">
        {% if action =='edit' %}
            {{ form.id() }}

我的控制器中的示例:

@view_config(route_name='Sports_News_Action', match_param='action=create',
             renderer='StarAdmin:templates/edit_sports.jinja2')
def general_create(request):
    entry = SportNews()

请求路由必须与我控制器中的路由匹配才能运行该功能。我想做的是如何用动态变量替换jinja中的一个,使用一个jinja模板就可以说具有不同route_name的不同视图/控制器。

1 个答案:

答案 0 :(得分:0)

我认为在您的情况下,最简单的解决方案是将action保留为未定义状态,然后浏览器会将请求提交到当前网址。如果要将表单提交到与当前URL不同的URL,则只需指定action。话虽如此,您也可以在金字塔中使用许多不同的选项来生成URL。例如,request.url是当前的URL,或者request.matched_route.name是当前匹配的路由的名称。