[Zope3-Users] TAL and Decimals
David Johnson
djohnson at jsatech.com
Thu Apr 6 12:18:04 EDT 2006
Thanks, I will follow up on this.
I did find that the following worked as an interim fix. In my "select"
statement, instead of "select price", we use "select format(price,2) price":
it breaks the i18n stuff but it works otherwise. IDecimal sounds like a much
better approach.
> -----Original Message-----
> From: Michael Howitz [mailto:mh at gocept.com]
> Sent: Wednesday, April 05, 2006 1:36 AM
> To: David Johnson
> Cc: zope3-users at zope.org
> Subject: Re: [Zope3-Users] TAL and Decimals
>
> Am Dienstag, den 04.04.2006, 11:24 -0500 schrieb David Johnson:
> > I am reading a decimal field from a database and trying to display it
> > in a page template. What is the TAL to do this?
> > Among other things, I've tried:
> > <div tal:replace="python: u'%f' % (item.price)" />
> >
> > Which generates the follow exception:
> > ForbiddenAttribute: ('__float__', Decimal("0.00"))
> >
> > I've also tried the simple:
> > $<div tal:replace="item/price" />
> >
> > Which displays:
> > $<security proxied decimal.Decimal instance at 0x41d76694>
>
> Hi,
>
> in current Zope versions python decimals are security proxied.
> (See also http://www.zope.org/Collectors/Zope3-dev/543 )
>
> I think a better solution than the one described in the bug is the
> following:
>
> Write an interface IDecimal which includes alle the mehtods you want to
> access in views and page tempates.
>
> Put the following into your configure.zcml:
>
> <class class="decimal.Decimal">
> <implements interface=".interfaces.IDecimal" />
> <allow interface=".interfaces.IDecimal" />
> </class>
>
> It declares that the class decimal.Decimal implements your IDecimal
> interface and that there are no security restrictions on the interface.
>
> HTH,
> mac
>
>
More information about the Zope3-users
mailing list