I just stumbled over something that utterly baffles me and hope
someone can point out the absolutely obvious to me.

I've got a view defined in a configure.zcml that points to this class:

    class MyView(BrowserView):
        def __call__(self):
            self.pt = ViewPageTemplateFile('empty.pt')
            data = self.pt()
            return data

That works fine. However, I don't really need pt as instance variable,
so I turned it into a local variable:

    class MyView(BrowserView):
        def __call__(self):
            pt = ViewPageTemplateFile('empty.pt')
            data = pt()
            return data

  And that version throws an exception:

    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 mjl.example.browser.myform, line 31, in __call__
      Module Shared.DC.Scripts.Bindings, line 313, in __call__
      Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
      Module Shared.DC.Scripts.Bindings, line 1, in ?
Module Shared.DC.Scripts.Bindings, line 293, in _getTraverseSubpath
    AttributeError: 'str' object has no attribute 'other'

Same if I just do the simpler "return ViewPageTemplateFile ('empty.pt')()"
of course.

  I simply do not understand why, what or who does care how I name my
variables or where I put them? Please hit me hard with a cluebat. Twice.



Zope3-users mailing list

Reply via email to