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:[EMAIL PROTECTED] > Sent: Wednesday, April 05, 2006 1:36 AM > To: David Johnson > Cc: email@example.com > 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 > > _______________________________________________ Zope3-users mailing list Zope3firstname.lastname@example.org http://mail.zope.org/mailman/listinfo/zope3-users