1.256,56 €
en vez de así:
1256.56 €
tenemos que localizar la plantilla y dejar que django haga el trabajo duro.
Para empezar, en settings.py indicamos que queremos usar la localización añadiendo:
DEFAULT_CHARSET='utf-8'
THOUSAND_SEPARATOR= '.'
DECIMAL_SEPARATOR = ','
NUMBER_GROUPING = 3
USE_THOUSAND_SEPARATOR = True
FIRST_DAY_OF_WEEK = 1
LANGUAGE_CODE = 'es-es'
USE_L10N = True
En la plantilla, cargamos l10n y activamos la localización así:
{% load l10n %}
{% localize on %}
blah, blah, blah...
{% endlocalize %}
Y de forma mágica los importes aparecerán correctamente formateados. Para controlar la cantidad de decimales diferentes del estándar también podemos usar el filtro floatformat:precision así:
{{ importe|floatformat:6 }}