guarded_getattr attribute error with complex Python structures
Hi, I've got a complex Zope problem... I have a resonably deep imbrication of Python scripts & DTML Methods. It happends that I finally do something like this : MyScript: return MyMethod(LIST, RECORD_SET) MyMethod: <dtml-in LIST> xxx </dtml-in> As you can guess, LIST is a... list (actually a list of tuples built from another Py script). When I try the URL, I eventually got the following traceback : Traceback (most recent call last): File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_Try.py", line 221, in render_try_except result = render_blocks(self.section, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_Util.py", line 230, in eval return eval(code, d) File "", line 2, in f File "/isp/zope/smartway/lib/python/AccessControl/DTML.py", line 104, in guarded_getitem return guarded_getitem(ob, index) File "/isp/zope/smartway/lib/python/AccessControl/ZopeGuards.py", line 151, in guarded_getitem v = object[index] File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_With.py", line 148, in render try: return render_blocks(self.section, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_Return.py", line 104, in render val = md[name] File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_With.py", line 148, in render try: return render_blocks(self.section, md) File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_In.py", line 770, in renderwob try: append(render(section, md)) File "/isp/zope/smartway/lib/python/OFS/DTMLDocument.py", line 192, in __call__ r=apply(HTML.__call__, (self, bself, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_Let.py", line 148, in render return render_blocks(self.section, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_Util.py", line 230, in eval return eval(code, d) File "", line 2, in f File "/isp/zope/smartway/lib/python/Shared/DC/Scripts/Bindings.py", line 324, in __call__ return self._bindAndExec(args, kw, None) File "/isp/zope/smartway/lib/python/Shared/DC/Scripts/Bindings.py", line 354, in _bindAndExec return self._exec(bound_data, args, kw) File "/isp/zope/smartway/lib/python/Products/PythonScripts/PythonScript.py", line 363, in _exec result = apply(f, args, kw) File "Script (Python)", line 1, in html_results_list File "/isp/zope/smartway/lib/python/OFS/DTMLMethod.py", line 187, in __call__ r=apply(HTML.__call__, (self, client, REQUEST), kw) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_String.py", line 544, in __call__ try: result = render_blocks(self._v_blocks, md) File "/isp/zope/smartway/lib/python/DocumentTemplate/DT_In.py", line 768, in renderwob push(InstanceDict(client, md)) AttributeError: guarded_getattr This happens in fact quite every time I'm handling complex Python data structures and passing them through scripts and/or methods... Is it a bug or are my wished to complex ?... Many thanks, P.-J. -- If the only tool you have is a hammer, you tend to see every problem as a nail. Si le seul outil dont vous disposez est un marteau, vous avez tendance à voir chaque problème comme un clou. --Abraham Maslow
participants (1)
-
Pierre-Julien Grizel