hi, I think you should write in a python script: try: result = context.insert_data.zsql msg = 'data inserted' except ZeroDivisionError: msg = 'ZeroDivisionError occured' return msg and in your tal you write:
<div> tal:content="context/MyPythonscript">
</div>
allways try to put logic in a python script. it is *far* easier than writing complicated tal robert Miguel Beltran R. schrieb:
I tried to insert data using an zsql, insert fine How manage error with zsql. Before <dtml-try> <dtml-call insert_data> Data inserted!!! <dtml-except> Error type:<dtml-var error_type> Error type:<dtml-var error_value> </dtml-try>
Now (All files are ZPT)
[index_html] ... <form action="proyecto_alta.html"> <input type="text" name="field1" id="field1" /> ... <input type="text" name="field2" id="field2" /> </form>
[proyecto_alta.html] <div tal:on-error="structure here/error_insertar"> tal:condition="context/insert_data.zsql" tal:content="string: Data inserted!!!">
</div>
[error_insertar] error=_['error'] if error.type==ZeroDivisionError: return "<p>Can't divide by zero.</p>" else: return """<p>An error ocurred.</p> <p>Error type: %s</p> <p>Error value: %s</p>""" % (error.type, error.value)
But say
Tipo Unauthorized Valor You are not allowed to access 'type' in this context TraceBack
Traceback (innermost last):
* Module ZPublisher.Publish, line 119, in publish * Module ZPublisher.mapply, line 88, in mapply * Module ZPublisher.Publish, line 42, in call_object * Module Shared.DC.Scripts.Bindings, line 313, in __call__ * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec * Module Products.PageTemplates.ZopePageTemplate, line 330, in _exec * Module Products.PageTemplates.ZopePageTemplate, line 427, in pt_render * Module Products.PageTemplates.PageTemplate, line 96, in pt_render * Module zope.pagetemplate.pagetemplate, line 115, in pt_render * Module zope.tal.talinterpreter, line 271, in __call__ * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 981, in do_onError_tal * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal * Module Products.PageTemplates.Expressions, line 199, in evaluateStructure * Module zope.tales.tales, line 696, in evaluate *URL: /ceed/finanza/proyecto/proyecto_alta.html* *Line 1, Column 0* *Expression: <PathExpr standard:u'here/error_insertar'>* *Names:*
{'container': <Folder at /ceed/finanza/proyecto>, 'context': <Folder at /ceed/finanza/proyecto>, 'default': <object object at 0x0075A528>, 'here': <Folder at /ceed/finanza/proyecto>,
'loop': {}, 'nothing': None, 'options': {'args': ()}, 'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x02382828>, 'request': <HTTPRequest, URL=http://sic/finanza/proyecto/proyecto_alta.html>,
'root': <Application at >, 'template': <ZopePageTemplate at /ceed/finanza/proyecto/proyecto_alta.html>, 'traverse_subpath': [], 'user': <User 'admin'>}
* Module zope.tales.expressions, line 217, in __call__ * Module Products.PageTemplates.Expressions, line 139, in _eval * Module Products.PageTemplates.Expressions, line 91, in render * Module Products.PageTemplates.ZRPythonExpr, line 79, in call_with_ns * Module Shared.DC.Scripts.Bindings, line 327, in __render_with_namespace__ * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec * Module Products.PythonScripts.PythonScript, line 327, in _exec * Module None, line 2, in error_insertar *<PythonScript at /ceed/finanza/proyecto/error_insertar>* *Line 2*
Unauthorized: You are not allowed to access 'type' in this context
(Example taked from http://www.plope.com/Books/2_7Edition/AppendixC.stx#2-28 <http://www.plope.com/Books/2_7Edition/AppendixC.stx#2-28>)
-- ________________________________________ Lo bueno de vivir un dia mas es saber que nos queda un dia menos de vida
------------------------------------------------------------------------
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )