2017-01-04 4 views
0

Python 2.7.12Python request.vars контроллер web2py не имеет атрибут (но на самом деле делает)

web2py 2.14 стабильного

--call в контроллер, разработанный яваскрипта

--call к контроллер. Захваченный Chrome инспектировать

GET "http://127.0.0.1:8000/default/FoldBe.html?operation=get&id=%23" 

--controller default.py

FoldBe(): 
    vars = dict(request.vars) 
    print type(vars) 
    #<type 'dict'> 

    print vars 
    #{'operation': 'get', 'id': '#'} 

    for i in vars: 
     print i 
     #operation 
     #id 
     #print i.id 

    print vars.id 
    #ERRORS!!! stating. What gives? 
    #<type 'exceptions.AttributeError'> 'dict' object has no attribute 'id' 

Но ДИКТ 'Варс', очевидно, является 'DICT' и, очевидно, имеет 'идентификатор' атрибут Если я заметить из print vars.id вид отображается в браузере & ошибок нет, как вы ожидали.

Если я позволю print i.id выполнить ошибка:

<type 'exceptions.AttributeError'> 'str' object has no attribute 'id' 

Что это дает?

У меня есть другие методы в этом контроллере и других контроллерах, где это не проблема.

ответ

1

Вы должны получить доступ к словарным клавишам по имени, поэтому попробуйте vars['id'] вместо vars.id.

+0

странно, я думал, что попробовал это. Но вы правы. возможно, я смутил vars [id] и пропустил, используя «id» semiquotes – Steve

 Смежные вопросы

  • Нет связанных вопросов^_^