[Zope] 'str' object has no attribute 'other'
chaouche yacine
yacinechaouche at yahoo.com
Tue Sep 16 04:17:49 EDT 2008
Houston, we have a problem.
Here's the code :
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from AccessControl import ClassSecurityInfo
import Globals
class User() :
security = ClassSecurityInfo()
security.declareObjectPublic()
security.setDefaultAccess("allow")
def viewProfile(self):
"""
"""
userProfile = PageTemplateFile("vues/userProfile.pt",globals()).__of__(self)
return userProfile()
Globals.InitializeClass(Interlocuteur)
And here's what I got :
TypeError: attempt to wrap extension method using an object that is not an extension class instance.
Traceback:
* Module ZPublisher.Publish, line 101, in publish
* Module ZPublisher.mapply, line 88, in mapply
* Module ZPublisher.Publish, line 39, in call_object
...
* Module Products.PageTemplates.Expressions, line 74, in render
* Module Products.GestionnaireInscriptions.Interlocuteur, line 39, in voirFiche
TypeError: attempt to wrap extension method using an object that is not an extension class instance.
Note :
s/Interlocuteur/User/
s/voirFiche/viewProfile/
Besides, this solution do not seem elegant for me, because each time I try to view a user's profile, it requires an instanciation of PageTemplateFile. I find this useless. This PageTemplateFile should be a class attribute.
--- On Mon, 9/15/08, chaouche yacine <yacinechaouche at yahoo.com> wrote:
> From: chaouche yacine <yacinechaouche at yahoo.com>
> Subject: Re: [Zope] 'str' object has no attribute 'other'
> To: "Martijn Jacobs" <martijn at fourdigits.nl>
> Cc: "zope zope" <zope at zope.org>, marco.bizzarri at gmail.com
> Date: Monday, September 15, 2008, 9:14 PM
> Aha ! good point. I'll try that as soon as I get to
> work.
>
> Thank you.
>
> Marco, I'm using zope 2.7, python 2.3 (this is
> customer's configuration).
>
>
>
>
>
>
>
> --- On Mon, 9/15/08, Martijn Jacobs
> <martijn at fourdigits.nl> wrote:
>
> > From: Martijn Jacobs <martijn at fourdigits.nl>
> > Subject: Re: [Zope] 'str' object has no
> attribute 'other'
> > To: yacinechaouche at yahoo.com
> > Cc: "zope zope" <zope at zope.org>
> > Date: Monday, September 15, 2008, 2:46 PM
> > I think it has something to do with the PageTemplate
> not
> > properly
> > (explicit) acquiition wrapped .
> >
> > Try changing the line :
> > userProfile =
> >
> PageTemplateFile("views/userProfile.pt",globals())
> >
> > into :
> > userProfile =
> >
> PageTemplateFile("views/userProfile.pt",globals()).__of__(self)
> >
> >
> > See for more information :
> >
> > http://www.zopelabs.com/cookbook/995992579
> >
> >
> > Regards,
> >
> >
> > Martijn.
> > > HAI list,
> > >
> > > I am developing a zope product composed of a
> bunch of
> > python classes, some which are instanciated in the
> ZODB,
> > like plone's tools, and some that are just helper
> > classes, they do not need to be instanciated in the
> ZODB.
> > >
> > > UserManager is a class that is in the ZODB.
> > UserManager retrieves users from MySQL, and create
> User
> > objects. User is a classic python class (that is not
> > instanciated in the ZODB).
> > >
> > > For every user, i wish to display its profile on
> the
> > site using a Page Template. So I tried something like
> this :
> > >
> > > from Products.PageTemplates.PageTemplateFile
> import
> > PageTemplateFile
> > > from AccessControl
> import
> > ClassSecurityInfo
> > > from Utilisateur
> import
> > Utilisateur
> > > import Globals
> > >
> > > class User() :
> > > security = ClassSecurityInfo()
> > > security.declareObjectPublic()
> > > security.setDefaultAccess("allow")
> > >
> > > userProfile =
> >
> PageTemplateFile("views/userProfile.pt",globals())
> > >
> > > ...
> > >
> > > Globals.InitializeClass(User)
> > >
> > >
> > > Then, in UserManager, I have another Page
> Template
> > that displays a user profile this way :
> > >
> > > <html>
> > > <body>
> > > <h1>User profile </h1>
> > > <hr/>
> > > <ins tal:define="myUser
> > request/SESSION/myUser"
> > tal:replace="myUser/userProfile"
> > > </body>
> > > </html>
> > >
> > >
> > > This code produces the following error :
> > >
> > >
> > > Module ZPublisher.Publish, line 101, in publish
> > > Module ZPublisher.mapply, line 88, in mapply
> > > Module ZPublisher.Publish, line 39, in
> call_object
> > > ...
> > > Module Shared.DC.Scripts.Bindings, line 1, in ?
> > > Module Shared.DC.Scripts.Bindings, line 286, in
> > _getTraverseSubpath
> > > AttributeError: 'str' object has no
> attribute
> > 'other'
> > >
> > >
> > > Any ideas ?
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Zope maillist - Zope at 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 )
> > >
> >
> >
> > --
> > Martijn Jacobs
> > Four Digits, Internet Solutions
> >
> > a: Willemsplein 15-1 6811 KB Arnhem NL
> > kvk: 091621370000 | btw: 8161.22.234.B01
> > e-mail: martijn at fourdigits.nl | web:
> > http://www.fourdigits.nl
> > tel: +31 (0)26 44 22 700 | fax: +31 (0)84 22 06 117
>
>
>
> _______________________________________________
> Zope maillist - Zope at 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 )
More information about the Zope
mailing list