gpt4 book ai didi

python - 这个错误是什么意思 : ValueError: renderer was passed non-dictionary as value

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:43 27 4
gpt4 key购买 nike

现在我有一个 Pyramid (python) 应用程序,它的主页是通过 init.py 文件中的这条路线到达的:

 config.add_route('home_page', '/')

在我的 views.py 文件中我有:

@view_config(route_name='home_page', renderer='templates/edit.pt')
def home_page(request):
if 'form.submitted' in request.params:
name= request.params['name']
body = request.params['body']
page=Page(name,body)
DBSession.add(page)
return HTTPFound(Location=request.route_url('view_page',pagename=name))

在我的 edit.pt 模板中有

<form action="${save_url}" method="post">
<textarea name="name" tal:content="page.data" rows="10"
cols="60"/><br/>
<textarea name="body" tal:content="page.name" rows="10"
cols="60"/><br/>
<input type="submit" name=form.submitted value="Save"/>
</form>

所以基本上目标是让主页显示此 edit.pt 模板,其中包含用于提交两条信息的表单,页面名称和页面正文。提交表单后,返回的 HTTPFound 函数应该重定向到创建的 view_page,它在新的永久 url 上显示页面名称页面正文。

我不确定在主页 View 配置中的 if 语句后应该添加什么。如果表单尚未提交,我不想发生任何事情,它应该继续显示 edit.pt 模板。现在,当我尝试访问主页时出现错误:ValueError: renderer was passed non-dictionary as value。

最佳答案

看起来你缺少一个条件

@view_config(route_name='home_page', renderer='templates/edit.pt')
def home_page(request):
if 'form.submitted' in request.params:
name= request.params['name']
body = request.params['body']
page=Page(name,body)
DBSession.add(page)
return HTTPFound(Location=request.route_url('view_page',pagename=name))

# form was not submitted here, need to return context
# ValueError: renderer was passed non-dictionary as value < beacuase you were
# not returning context for this case before
return {} # template contenxt here

关于python - 这个错误是什么意思 : ValueError: renderer was passed non-dictionary as value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570260/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com