[Zope] External Methods and Authentication error

Dieter Maurer dieter at handshake.de
Sun Mar 11 15:13:02 EDT 2007


Jonathan wrote at 2007-3-10 08:03 -0500:
> ...
>Dieter, thanks for the lead, but it is all very strange and I really don't 
>understand what is happening...
>
>External Method:
>
>                   # threadFolder is a BTreeFolder2; viewCount is a property 
>field on the BTreeFolder2
>
>line 3227:    threadFolder = self.unrestrictedTraverse(topFolder + forumId + 
>'/' + threadId)
>line 3228:    threadFolder.manage_changeProperties({'viewCount': 
>threadFolder.viewCount+1})
>
>
>OFS/PropertyManager.py
>
>line 299:       def manage_changeProperties(self, REQUEST=None, **kw):
>...
>line 317:        if REQUEST:
>line 318:            message="Saved changes."
>line 319:            return self.manage_propertiesForm(self,REQUEST,
>line 320: 
>manage_tabs_message=message)

I see: the "DTML" object is "manage_propertiesForm" and there is
no nameclash.

The "manage_changeProperties" method has a somewhat awkward behaviour.
In general, you should not pass it a positional argument but always
keyword arguments. If you pass a positional argument, it takes it
for "REQUEST" and usually does the wrong thing.

If you have the arguments in a dictionary "d", use
"manage_changeProperties(**d)".



-- 
Dieter


More information about the Zope mailing list