Найти - Пользователи
Полная версия: Передача данных из формы в метод из controllers.py
Начало » Pyramid / Pylons / TurboGears » Передача данных из формы в метод из controllers.py
1
securelord
Сама форма:
<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’
pythonwin
напиши так:
@expose()
def save(self, **kw):
return str(kw)

и увидешь что форма возвращает в метод :)
securelord
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'
securelord
Спасибо. Проблему пофиксил.

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

    @expose()
def save(self, **kw):
return str(kw)
PooH
TypeError: users() got an unexpected keyword argument ‘user_lastname’
Так у тебя форма обращается к методу users, а вовсе не save, код которого ты здесь привел
securelord
PooH
Спасибо, я уже понял что проблема была в этом и еще в другом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB