Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 18, 2007 13:33:50

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных из формы в метод из controllers.py

Сама форма:
<form method=“post” action=“save”>
<input type=“text” name=“user_name” value=“Имя” size=“30” /><br /><br />
<input type=“text” name=“user_lastname” value=“Фамилия” size=“30” /><br /><br />
<input type=“text” name=“user_part” value=“Отдел” size=“30” /><br /><br />
<input type=“submit” name=“save” />

</form>
Метод:

@expose()
def save(self, pagename, user_name, user_lastname, part, submit):
page = Page.byPagename(pagename)
page.data = part
turbogears.flash(“Changes saved!”)
raise turbogears.redirect(“/”, pagename=pagename)
При таком раскладе - не получается:

TypeError: users() got an unexpected keyword argument ‘user_lastname’



Отредактировано (Июнь 18, 2007 13:35:26)

Офлайн

#2 Июнь 18, 2007 13:39:20

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных из формы в метод из controllers.py

напиши так:
@expose()
def save(self, **kw):
return str(kw)

и увидешь что форма возвращает в метод :)



Офлайн

#3 Июнь 18, 2007 13:46:19

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных из формы в метод из controllers.py

pythonwin

Та же самая ошибка.

Page handler: <bound method Root.users of <invent.controllers.Root object at 0x88bf50c>>
Traceback (most recent call last):
File "/usr/local/lib/python2.5/site-packages/cherrypy/_cphttptools.py", line 105, in _run
self.main()
File "/usr/local/lib/python2.5/site-packages/cherrypy/_cphttptools.py", line 254, in main
body = page_handler(*virtual_path, **self.params)
File "<string>", line 3, in users
File "/usr/local/lib/python2.5/site-packages/TurboGears-1.0.2.2-py2.5.egg/turbogears/controllers.py", line 336, in expose
*args, **kw)
File "<string>", line 5, in run_with_transaction
File "/usr/local/lib/python2.5/site-packages/TurboGears-1.0.2.2-py2.5.egg/turbogears/database.py", line 303, in so_rwt
retval = func(*args, **kw)
File "<string>", line 5, in _expose
File "/usr/local/lib/python2.5/site-packages/TurboGears-1.0.2.2-py2.5.egg/turbogears/controllers.py", line 351, in <lambda>
mapping, fragment, args, kw)))
File "/usr/local/lib/python2.5/site-packages/TurboGears-1.0.2.2-py2.5.egg/turbogears/controllers.py", line 378, in _execute_func
output = errorhandling.try_call(func, *args, **kw)
File "/usr/local/lib/python2.5/site-packages/TurboGears-1.0.2.2-py2.5.egg/turbogears/errorhandling.py", line 73, in try_call
return func(self, *args, **kw)
TypeError: users() got an unexpected keyword argument 'user_lastname'



Офлайн

#4 Июнь 18, 2007 16:33:44

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных из формы в метод из controllers.py

Спасибо. Проблему пофиксил.

Правильно было так:
controllers.py
Метод controllers.Root.save:

    @expose()
def save(self, **kw):
return str(kw)



Отредактировано (Июнь 18, 2007 16:36:50)

Офлайн

#5 Июнь 19, 2007 14:08:02

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1851
Репутация: +  65  -
Профиль   Отправить e-mail  

Передача данных из формы в метод из controllers.py

TypeError: users() got an unexpected keyword argument ‘user_lastname’
Так у тебя форма обращается к методу users, а вовсе не save, код которого ты здесь привел



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#6 Июнь 19, 2007 14:54:57

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных из формы в метод из controllers.py

PooH
Спасибо, я уже понял что проблема была в этом и еще в другом.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version