我已经完成了一个网站的开发,它工作正常,但我试图通过添加动态模板来优化我的网站,并希望确保如果它可以在金字塔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_names的不同视图/控制器。
我认为在您的情况下,最简单的解决方案是保持action
未定义,浏览器将请求提交到当前网址。如果要将表单提交到与当前不同的URL,则只需指定action
。话虽这么说,您可以在金字塔中使用许多不同的选项来生成网址。例如,request.url
是当前的url,或者request.matched_route.name
是当前匹配路由的名称。