让我问一下python金字塔框架。 我想执行表单的逻辑(检查,注册,重定向),以便在视图的一个位置显示所有页面。 我使用pyramid_layout面板,但面板无法返回HTTPFound()。 它似乎能够在钩子或javascript中实现,但是没有好的方法吗?
谢谢,评论。
这是反馈形式的常见页脚。
应用/ tempaltes /布局/ layout.mako
${panel('navbar')}
${next.body()}
<!-- common footers -->
<div class="container">
${panel('common_footers')}
<div class="col-lg-5">
<p>Please drop us a line on Project.</p>
<form id="feedback" action="${action}" method="post">
<div class="form-group${' has-error' if form.feedback.errors else ''}">
${form.feedback(class_="form-control", rows="4", maxlength="140")}
</div>
% if form.feedback.errors:
<div class="form-group has-error">
<p class="text-danger">
% for error in form.feedback.errors:
${error}
% endfor
</p>
</div>
% endif
<div class="form-group">
<button type="submit" class="btn btn-primary">Send us a feedback</button>
</div>
</form>
</div>
</div><!--/.container -->
这是views.py
应用/ views.py
@view_config(route_name = 'home', renderer = '/home.mako')
def home(request):
form = Feedback(request.POST)
url = request.current_route_url()
if request.method == 'POST' and form.validate():
return HTTPFound(location = url)
return dict(form = form, action = url)
def foo(request):
... same code
def bar(request):
... same code
没有必要多次将相同的代码写入view.py中的函数。 这是错的吗?
答案 0 :(得分:0)
您可以在@view_config(route_name='home', renderer='/home.mako')
类似的东西:
@view_config(route_name='foo', renderer='/home.mako')
@view_config(route_name='bar', renderer='/home.mako')
@view_config(route_name='home', renderer='/home.mako')
def home(request):
form = Feedback(request.POST)
url = request.current_route_url()
if request.method == 'POST' and form.validate():
return HTTPFound(location = url)
return dict(form = form, action = url)
您可以找到更多信息here。