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

Luis Miguel Morillas morillas en gmail.com
Mie Abr 30 20:31:56 CEST 2008


2008/4/30 FERNANDO VILLARROEL <fvillarroel en yahoo.com>:
> Hola Miguel, muchas gracias efectivamente ese era el
>  error.
>
>  Ahora funciona, lo que ocurre es que es mi primer
>  encuentro con TG, KID, etc.
>
>  En la documentacion de TG me encontre con CRUD y lo
>  que hice fue generar las plantillas para una clase
>  determinada de mi Base de Datos, ahora veo que el
>  error lo comete CRUD al momento de generar los
>  templates.
>
>  Aprovecho de preguntarte tu me decias que validara las
>  plantillas previamente, como se hago eso, con tg-admin
>  crud ....?
>

Con cualquier herramienta/editor de xml.
Yo suelo usar emacs + nxml-mode

>  Bueno gracias por tu ayuda.
>
>  Saludos.
>
>
> --- Luis Miguel Morillas <morillas en gmail.com> wrote:
>
>  > Faltan unas comillas en <a
>  > href=${tg.url('../list')}">Back</a>  .
>  > Valida antes tus pantillas kid para evitar estos
>  > problemas.
>  >
>  >
>  > 2008/4/30 FERNANDO VILLARROEL
>  > <fvillarroel en yahoo.com>:
>  > > 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'">
>  >
>  === message truncated ===
>
>
>
>
>
>       ____________________________________________________________________________________
>  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
>



-- 
Saludos,

--

Luis Miguel
_______________________________________________
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