Hi. I have problem in unicode in forms.

This code:
myform = form.Form(
    form.Textbox(u'Фамилия'))

Produce Traceback:

# /usr/local/lib/python2.6/dist-packages/web/form.py in render

  36. out += '<table>\n'
  37.
  38. for i in self.inputs:
  39. html = i.pre + i.render() + self.rendernote(i.note) + i.post
  40. if i.is_hidden():
  41. out += ' <tr style="display: none;"><th></th><td>%s</td></tr>\n'
% (html)
  42. else:

  43. out += ' <tr><th><label for="%s">%s</label></th><td>%s</td></tr>
\n' % (i.id, net.websafe(i.description), html) ...

  44. out += "</table>"
  45. return out
  46.
  47. def render_css(self):
  48. out = []
  49. out.append(self.rendernote(self.note))

▶ Local vars
Variable        Value
html
'<input type="text"
id="\xd0\xa0\xc2\xa4\xd0\xa0\xc2\xb0\xd0\xa0\xd1\x98\xd0\xa0\xd1\x91\xd0\xa0\xc2\xbb
\xd0\xa0\xd1\x91\xd0\xa1\xd0\x8f"
name="\xd0\xa0\xc2\xa4\xd0\xa0\xc2\xb0\xd0\xa0\xd1\x98\xd0\xa0\xd1\x91\xd0\xa0\xc2\xbb
\xd0\xa0\xd1\x91\xd0\xa1\xd0\x8f"/>'
i
<web.form.Textbox object at 0x998352c>
out
'<table>\n'
self
<web.form.Form instance at 0x998346c>
# templates/formtest.html in __template__

   0. $def with (form)
   1.
   2. <form name="main" method="post">
   3. $if not form.valid: <p class="error">Try again, AmeriCAN:</p>
   4. $:form.render()

   5. <input type="submit" /> </form> ...

   6.

▶ Local vars
Variable        Value
form
<web.form.Form instance at 0x998346c>
# /usr/local/lib/python2.6/dist-packages/web/template.py in
_join_output

 779. out = self.t(*a, **kw)
 780. return self._join_output(out)
 781.
 782. def _join_output(self, out):
 783. d = TemplateResult()
 784. data = []
 785.

 786. for name, value in out: ...

 787. if name:
 788. d[name] = value
 789. else:
 790. data.append(value)
 791.
 792. d.__body__ = u"".join(data)

▶ Local vars
Variable        Value
d
<TemplateResult: {}>
data
[u'\n', u'<form name="main" method="post"> \n']
name
''
out
<generator object __template__ at 0x9a49464>
self
<web.template.Template instance at 0x9a436ac>
value
u'<form name="main" method="post"> \n'
# /usr/local/lib/python2.6/dist-packages/web/template.py in __call__

 773. def _compile(self, code):
 774. env = self.make_env(self._globals or {}, self._builtins)
 775. exec(code, env)
 776. return env['__template__']
 777.
 778. def __call__(self, *a, **kw):
 779. out = self.t(*a, **kw)

 780. return self._join_output(out) ...

 781.
 782. def _join_output(self, out):
 783. d = TemplateResult()
 784. data = []
 785.
 786. for name, value in out:

▶ Local vars
Variable        Value
a
(<web.form.Form instance at 0x998346c>,)
kw
{}
out
<generator object __template__ at 0x9a49464>
self
<web.template.Template instance at 0x9a436ac>
# /usr/local/lib/python2.6/dist-packages/web/template.py in __call__

 860. normalize_text = staticmethod(normalize_text)
 861.
 862. def __call__(self, *a, **kw):
 863. import webapi as web
 864. if 'headers' in web.ctx and self.content_type:
 865. web.header('Content-Type', self.content_type, unique=True)
 866.

 867. return BaseTemplate.__call__(self, *a, **kw) ...

 868.
 869. def generate_code(text, filename):
 870. # parse the text
 871. rootnode = Parser(text, filename).parse()
 872.
 873. # generate python code from the parse tree

▶ Local vars
Variable        Value
a
(<web.form.Form instance at 0x998346c>,)
kw
{}
self
<web.template.Template instance at 0x9a436ac>
web
<module 'web.webapi' from '/usr/local/lib/python2.6/dist-packages/web/
webapi.pyc'>
# /home/melandory/project/inquire/application.py in GET

  14. form.Validator('Must be more than 5', lambda x:int(x)>5)),
  15. form.Textarea(u'Name'),
  16. form.Dropdown(u'Choise', ['mustard', 'fries', 'wine']))
  17.
  18. class index:
  19. def GET(self):
  20. form = myform()

  21. return render.formtest(form) ...

  22.
  23. def POST(self):
  24. form = myform()
  25. if not form.validates():
  26. return render.formtest(form)
  27. else:

▶ Local vars
Variable        Value
form
<web.form.Form instance at 0x998346c>
self
<application.index instance at 0x998348c>
# /usr/local/lib/python2.6/dist-packages/web/application.py in
handle_class

 379. def handle_class(cls):
 380. meth = web.ctx.method
 381. if meth == 'HEAD' and not hasattr(cls, meth):
 382. meth = 'GET'
 383. if not hasattr(cls, meth):
 384. raise web.nomethod(cls)
 385. tocall = getattr(cls(), meth)

 386. return tocall(*args) ...

 387.
 388. def is_class(o): return isinstance(o, (types.ClassType, type))
 389.
 390. if f is None:
 391. raise web.notfound()
 392. elif isinstance(f, application):

▶ Local vars
Variable        Value
args
[]
cls
<class application.index at 0x997f59c>
meth
u'GET'
tocall
<bound method index.GET of <application.index instance at 0x998348c>>
# /usr/local/lib/python2.6/dist-packages/web/application.py in
_delegate

 404. elif '.' in f:
 405. x = f.split('.')
 406. mod, cls = '.'.join(x[:-1]), x[-1]
 407. mod = __import__(mod, globals(), locals(), [""])
 408. cls = getattr(mod, cls)
 409. else:
 410. cls = fvars[f]

 411. return handle_class(cls) ...

 412. elif hasattr(f, '__call__'):
 413. return f()
 414. else:
 415. return web.notfound()
 416.
 417. def _match(self, mapping, value):

# /usr/local/lib/python2.6/dist-packages/web/application.py in handle

 225.
 226. def browser(self):
 227. import browser
 228. return browser.AppBrowser(self)
 229.
 230. def handle(self):
 231. fn, args = self._match(self.mapping, web.ctx.path)

 232. return self._delegate(fn, self.fvars, args) ...

 233.
 234. def handle_with_processors(self):
 235. def process(processors):
 236. try:
 237. if processors:
 238. p, processors = processors[0], processors[1:]

▶ Local vars
<web.application.application instance at 0x995ac8c>
# /usr/local/lib/python2.6/dist-packages/web/application.py in process

 234. def handle_with_processors(self):
 235. def process(processors):
 236. try:
 237. if processors:
 238. p, processors = processors[0], processors[1:]
 239. return p(lambda: process(processors))
 240. else:

 241. return self.handle()

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/webpy?hl=en.

Reply via email to