<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Ok I'd read about those functions a little bit in the Zope 2 book or the Developer's Guide, but they seemed like advanced techniques that I probably wouldn't need to understand.<div><br></div><div>Back on topic; I ran this awesome command in the terminal:&nbsp;</div><div><br></div><div>grep getitem x=$(find . *.*)&nbsp;</div><div><br></div><div>and turned up some random references to getitem in some dtml code, which I judge to be insignificant. There was also one very interesting usage of __getitem__ in the python code itself, and I have to investigate the code further to understand what's going on. The function definition looks suspiciously like what I would expect to find for this 'hijacking' of control:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #1e39f6">def</span> __getitem__(self, key):</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span>v=self._getOb(key, <span style="color: #1e39f6">None</span>)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #1e39f6">if</span> v <span style="color: #1e39f6">is</span> <span style="color: #1e39f6">not</span> <span style="color: #1e39f6">None</span>: <span style="color: #1e39f6">return</span> v</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #1e39f6">if</span> hasattr(self, <span style="color: #00b534">'REQUEST'</span>):</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; request=self.REQUEST</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; method=request.get(<span style="color: #00b534">'REQUEST_METHOD'</span>, <span style="color: #00b534">'GET'</span>)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #1e39f6">if</span> request.maybe_webdav_client <span style="color: #1e39f6">and</span> <span style="color: #1e39f6">not</span> method <span style="color: #1e39f6">in</span> (<span style="color: #00b534">'GET'</span>, <span style="color: #00b534">'POST'</span>):</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #1e39f6">return</span> NullResource(self, key, request).__of__(self)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #1e39f6">raise</span> KeyError, key</div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">I read this as: look up the object in the current context and return it. The only problem with this is that I don't see when the object gets placed into the proper context for the TAL statements like here/FirstName, etc.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">Thanks for your help already, and any continued guidance is appreciated.</div></body></html>