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