3

我正在尝试访问request.param我的 Pyramid 应用程序中的 a 。

我看到一个关于复选框的话题,但没有人谈论“选择”HTML标签。

在金字塔视图方面,这是我收集参数的代码部分:

if 'form.submitted' in request.params: # user
    user = User(request.params['nickname'],
                request.params['lastname'],
                request.params['firstname'],
                request.params['email'],
                request.params['password'],
                request.params['profile'])

在 Mako 模板方面,我的表单是一个简单的 HTML 语句:

<select name="profile">
    % for profile in p:
        % if profile is u.profile:
            <option selected>${profile.name}</option>
        % else:
            <option>${profile.name}</option>
        % endif
    % endfor
</select>  

每次我尝试访问“profile”参数时,都会出现KeyError...异常。

谁能帮我解决这个问题?


更新:我无法让KeyErrorMako 今天早上扔...也许我的同事解决了这个问题,我需要检查最后一次提交。现在创建用户的方式很好,但是当我将应用程序用户重定向到相同的表单(带有验证消息)时,我无法在语句中显示好。带来不便敬请谅解...

4

3 回答 3

1

我不确定,但配置文件参数可能是 unicode 而不是 str。但如果它只发生在“个人资料”而不是其他人身上,我不确定。

于 2012-12-10T16:11:00.400 回答
1

如果不查看从视图中返回的确切内容,很难确定,但如果在 mako 中引发了关键错误,通常意味着您没有从视图中返回该参数。例如:

@view_config(route_name='myform', renderer='myform.mako')
def myform(request):
   if request.POST:
       # do stuff with submitted form ...       
   user ={'name': 'bob'}
   return {'user': user}

在 myform.mako 中,您可以访问 user.name,但如果您尝试访问 user.profile,则会引发关键错误。

于 2012-12-10T16:25:26.370 回答
0

Well, the problem was corrected in a previous commit from one of my co-workers, and I can't get the KeyError now... Thanks for your help !

于 2012-12-11T10:56:16.547 回答