Hi,
I'm getting same error (gluaon/validators.py, line 807), version
1.97.1. Debugger says this.dot is type lazyT, so I made a test and
added str(). Line now looks:
def formatter(self, value):
return str(value).replace('.',str(self.dot))
also line 793
try:
if isinstance(value,decimal.Decimal):
v = value
else:
v =
decimal.Decimal(str(value).replace(str(self.dot),'.'))
and it seems to work, but I'm new to Python and not sure it is
correct.
Sorry for my english
Jano
On 30. Jún, 11:19 h., tomtom5 tomt...@chello.at wrote:
Thanks for this hint, but that doesn't seem to work.
If I apply this to the field in either model or controller, i get
following error:
File gluon/sqlhtml.py, line 782, in __init__
File gluon/dal.py, line 5247, in formatter
File gluon/validators.py, line 807, in formatter
TypeError: expected a character buffer object
If I use fixed value (eg .. requires=IS_DECIMAL_IN_RANGE(dot=,) ...)
the conversion seems to work.
On 29 Jun., 17:46, Massimo Di Pierro massimo.dipie...@gmail.com
wrote:
IS_DECIMAL_IN_RANGE and IS_FLOAT take a an attribute called dot=.
which you can internationalize
IS_DECIMAL_IN_RANGE(dot=T(.))
On Jun 29, 5:39 am, tomtom5 tomt...@chello.at wrote:
I'm currently diving into web2py and got a problemlocalisinginput/
output ofDecimal/Doubleformfields according to the users (browsers)
locale. I understand the mechanism of internationalising messages with
T(..), but that doesn't seem to help me further. What I need is, that
for example a german user may input adecimalvalue as 123.456,78
while an american user will use 123 456.78 as input/output format. I
found methods to define thedecimalseparator char in the constructor
of the IS_DECIMAL_IN_RANGE validator, but this is very rudimentary and
will not be user-locale aware. Is there a way to solve the problem out
of the box or should I create new validators or widgets for such a
task?
Thanks for advise