OT: Turbogears y CRUD ExpatError: not well-formed (invalid token):

FERNANDO VILLARROEL fvillarroel en yahoo.com
Mie Abr 30 06:48:23 CEST 2008


Hola primero disculpen la pregunta algo off topic,
pero necesito saber si alguien ha tenido problemas con
CRUD desde TG.

El tema es que he seguido al pie de la letra lo
indicado en la documentacion:

http://docs.turbogears.org/1.0/CRUDTemplate

Anda todo bien excepto el formulario form.kid, que me
tira el siguiente error:

Page handler: <bound method TestForms.edit of
<hola.TestForms.controllers.TestForms object at
0x81b2e6c>>
Traceback (most recent call last):
  File
"/usr/lib/python2.5/site-packages/CherryPy-2.3.0-py2.5.egg/cherrypy/_cphttptools.py",
line 121, in _run
    self.main()
  File
"/usr/lib/python2.5/site-packages/CherryPy-2.3.0-py2.5.egg/cherrypy/_cphttptools.py",
line 264, in main
    body = page_handler(*virtual_path, **self.params)
  File "<string>", line 3, in edit
  File
"/usr/lib/python2.5/site-packages/TurboGears-1.0.4.4-py2.5.egg/turbogears/controllers.py",
line 365, in expose
    *args, **kw)
  File "<string>", line 5, in run_with_transaction
  File
"/usr/lib/python2.5/site-packages/TurboGears-1.0.4.4-py2.5.egg/turbogears/database.py",
line 356, in so_rwt
    retval = func(*args, **kw)
  File "<string>", line 5, in _expose
  File
"/usr/lib/python2.5/site-packages/TurboGears-1.0.4.4-py2.5.egg/turbogears/controllers.py",
line 380, in <lambda>
    mapping, fragment, args, kw)))
  File
"/usr/lib/python2.5/site-packages/TurboGears-1.0.4.4-py2.5.egg/turbogears/controllers.py",
line 421, in _execute_func
    return _process_output(output, template, format,
content_type, mapping, fragment)
  File
"/usr/lib/python2.5/site-packages/TurboGears-1.0.4.4-py2.5.egg/turbogears/controllers.py",
line 87, in _process_output
    fragment=fragment)
  File
"/usr/lib/python2.5/site-packages/TurboGears-1.0.4.4-py2.5.egg/turbogears/view/base.py",
line 129, in render
    return engine.render(**kw)
  File
"/usr/lib/python2.5/site-packages/TurboKid-1.0.4-py2.5.egg/turbokid/kidsupport.py",
line 182, in render
    tclass = self.load_template(template)
  File
"/usr/lib/python2.5/site-packages/TurboKid-1.0.4-py2.5.egg/turbokid/kidsupport.py",
line 150, in load_template
    mod = _compile_template(package, basename, tfile,
classname)
  File
"/usr/lib/python2.5/site-packages/TurboKid-1.0.4-py2.5.egg/turbokid/kidsupport.py",
line 16, in _compile_template
    mod = kid.load_template(tfile, name=classname)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/__init__.py",
line 158, in load_template
    dump_source=os.environ.get('KID_OUTPUT_PY'))
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/compiler.py",
line 99, in compile
    code = self.code
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/compiler.py",
line 117, in code
    encoding=self.encoding)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/compiler.py",
line 114, in code
    self._code = py_compile(self.python, pyfile)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/compiler.py",
line 127, in python
    self.encoding, self.entity_map)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/codewriter.py",
line 66, in parse_file
    return parse(source, encoding, filename,
entity_map)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/codewriter.py",
line 54, in parse
    return KidWriter(doc, encoding, filename).parse()
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/codewriter.py",
line 245, in parse
    self.proc_stream(self.module_code)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/codewriter.py",
line 333, in proc_stream
    for ev, item in self.stream:
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/parser.py",
line 179, in _track
    for p in stream:
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/parser.py",
line 221, in _coalesce
    for ev, item in stream:
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/parser.py",
line 393, in __iter__
    for ev, stuff in self._expat_stream():
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/parser.py",
line 372, in _expat_stream
    feed(data)
  File
"/usr/lib/python2.5/site-packages/kid-0.9.6-py2.5.egg/kid/parser.py",
line 434, in feed
    raise expat.ExpatError(e)
ExpatError: not well-formed (invalid token): line 20,
column 63
Error in code generated from template file
'/home/fvillarroel/www/hola/hola/TestForms/templates/form.kid'

Los demas controles generados, list.kid y show.kid
funcionan bien.

Les pego ademas el form.kid

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://purl.org/kid/ns#"
    py:extends="'master.kid'">
<head>
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type" py:replace="''"/>
<title py:if="page=='edit'">edit</title>
<title py:if="page=='new'">new</title>
</head>
<body>
<span py:if="page=='new'">
<h1>New ${modelname}</h1>
${form(action='save', submit_text = "Create")}
</span>
<span py:if="page=='edit'">
<h1>Editing ${modelname}</h1>
${form(value=record,
action=tg.url('../save/%s'%str(record.id)),
submit_text = "Edit")}
</span>
<br/>
<div id="footbar" class="footbar"
py:if="page=='edit'">
<a href="${tg.url('../show/%s'%record.id)}">Show</a> |
<a href=${tg.url('../list')}">Back</a>
</div>
</body>
</html>

Espero alguien tenga alguna idea.

Atte.

Fernando.








      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es